권한과 보안이란 측면에서 Redshift가 제공해주는 기능을 알아보고자하는 글이다.
| analytics_authors | analytics_users | pii_users | admin | |
|---|---|---|---|---|
| raw_data 테이블들 | 읽기 | 읽기 | X | 읽기,쓰기 |
| analytics 테이블들 | 읽기,쓰기 | 읽기 | X | 읽기,쓰기 |
| adhoc 테이블들 | 읽기,쓰기 | 읽기,쓰기 | X | 읽기,쓰기 |
| pii 테이블들 | X | X | 읽기 | 읽기,쓰기 |
GRANT USAGE ON SCHEMA raw_data TO GROUP analytics_authors;
GRANT SELECT ON ALL TABLES IN SCHEMA raw_data TO GROUP analytics_authors;
GRANT ALL ON SCHEMA analytics TO GROUP analytics_authors;
GRANT ALL ON ALL TABLES IN SCHEMA analytics TO GROUP analytics_authors;
GRANT ALL ON SCHEMA adhoc to GROUP analytics_authors;
GRANT ALL ON ALL TABLES IN SCHEMA adhoc TO GROUP analytics_authors;
GRANT USAGE ON SCHEMA raw_data TO GROUP analytics_users;
GRANT SELECT ON ALL TABLES IN SCHEMA raw_data TO GROUP analytics_users;
GRANT USAGE ON SCHEMA analytics TO GROUP analytics_users;
GRANT SELECT ON ALL TABLES IN SCHEMA analytics TO GROUP analytics_users;
GRANT ALL ON ALL TABLES IN SCHEMA adhoc to GROUP analytics_users;
GRANT ALL ON SCHEMA adhoc TO GROUP analytics_users;
GRANT USAGE ON SCHEMA pii TO GROUP pii_users;
GRANT SELECT ON ALL TABLES IN SCHEMA pii TO GROUP pii_users;
이렇게 하면 일일이 다 그룹에 다 설정을 해줘야 하므로 번거롭다.

analytics, adhoc 테이블엔 읽기,쓰기 권한을 모두 부여하고 raw_data 테이블엔 읽기 권한만 부여

adhoc 테이블엔 읽기,쓰기 권한을 모두 부여하고 analytics, raw_data 테이블엔 읽기 권한만 부여

pii 테이블에 읽기 권한만 부여

yongjin 유저는 analytics_authors, analytics_users 그룹에 속해있다. 따라서 raw_data 테이블엔 읽기 권한만 주어져있다. 따라서 위와 같이 DELETE라는 쓰기 명령을 실행했을 경우 permission denied라는 에러를 보여주며 권한이 제한된다.