사용 노트 - Amazon Redshift

사용 노트

객체에서 권한을 취소하려면 다음 조건 중 하나를 충족해야 합니다.

  • 객체 소유자입니다.

  • 수퍼유저입니다.

  • 그 객체와 권한에 대해 허용된 권한이 있습니다.

    예를 들어, 다음 명령을 실행하면 사용자 HR은 직원 테이블에서 SELECT 명령을 수행할 뿐 아니라 다른 사용자에 대해 같은 권한을 허용하고 취소할 수 있습니다.

    grant select on table employees to HR with grant option;

    HR은 SELECT 이외의 작업 권한이나 직원 이외의 테이블에 대한 권한을 취소할 수 없습니다.

수퍼유저는 객체 권한을 설정하는 GRANT 및 REVOKE 명령과는 무관하게 모든 객체에 액세스할 수 있습니다.

PUBLIC은 모든 사용자를 항상 포함하는 그룹을 나타냅니다. 기본적으로 모든 PUBLIC 구성원은 PUBLIC 스키마에서 CREATE 및 USAGE 권한을 갖습니다. PUBLIC 스키마에 대한 사용자 권한을 제한하려면 먼저 PUBLIC 스키마에 대한 PUBLIC의 모든 권한을 취소한 다음 특정 사용자 혹은 그룹에게 권한을 허용합니다. 다음 예에서는 PUBLIC 스키마에서 테이블 생성 권한을 제어합니다.

revoke create on schema public from public;

Lake Formation 테이블에서 권한을 취소하려면 해당 테이블의 외부 스키마와 연결된 IAM 역할에 외부 테이블의 권한을 취소할 권한이 있어야 합니다. 다음 예제에서는 연결된 IAM 역할 myGrantor가 있는 외부 스키마를 생성합니다. IAM 역할 myGrantor는 다른 사람의 권한을 취소할 권한이 있습니다. REVOKE 명령은 외부 스키마와 연결된 IAM 역할 myGrantor의 권한을 사용하여 IAM 역할 myGrantee의 권한을 취소합니다.

create external schema mySchema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/myGrantor' create external database if not exists;
revoke select on external table mySchema.mytable from iam_role 'arn:aws:iam::123456789012:role/myGrantee';
참고

IAM 역할에 Lake Formation에 사용되는 AWS Glue Data Catalog의 ALL 권한도 있는 경우 ALL 권한이 취소되지 않습니다. SELECT 권한만 취소됩니다. Lake Formation 콘솔에서 Lake Formation 권한을 볼 수 있습니다.

ASSUMEROLE 권한 취소에 대한 사용 노트

다음 사용 노트는 Amazon Redshift에서 ASSUMEROLE 권한을 취소하는 데 적용됩니다.

데이터베이스 슈퍼 사용자만 사용자 및 그룹에 대한 ASSUMEROLE 권한을 취소할 수 있습니다. 슈퍼 사용자는 항상 ASSUMEROLE 권한을 유지합니다.

사용자와 그룹에 ASSUMEROLE 권한을 사용하도록 설정하기 위해 슈퍼 사용자가 클러스터에서 다음 문을 한 번 실행합니다. 사용자와 그룹에 ASSUMEROLE 권한을 부여하기 전에 슈퍼 사용자가 클러스터에서 다음 문을 한 번 실행해야 합니다.

revoke assumerole on all from public for all;

기계 학습 권한 취소에 대한 사용 노트

ML 함수와 관련된 권한을 직접 부여하거나 취소할 수 없습니다. ML 함수는 ML 모델에 속하며 권한은 모델을 통해 제어됩니다. 대신 ML 모델과 관련된 권한을 취소할 수 있습니다. 다음 예제는 customer_churn 모델과 연결된 모든 사용자로부터 실행 권한을 취소하는 방법을 보여줍니다.

REVOKE EXECUTE ON MODEL customer_churn FROM PUBLIC;

ML 모델 customer_churn에 대한 사용자의 모든 권한을 취소할 수도 있습니다.

REVOKE ALL on MODEL customer_churn FROM ml_user;

스키마에 ML 함수가 있는 경우 해당 ML 함수가 이미 GRANT EXECUTE ON MODEL을 통해 EXECUTE 권한을 부여받았더라도 ML 함수와 관련된 EXECUTE 권한 부여 또는 취소는 실패합니다. CREATE MODEL 명령을 사용할 때는 별도의 스키마를 사용하여 ML 함수를 별도의 스키마에 따로 보관하는 것이 좋습니다. 다음 예제에서는 이 작업을 수행하는 방법을 보여 줍니다.

CREATE MODEL ml_schema.customer_churn FROM customer_data TARGET churn FUNCTION ml_schema.customer_churn_prediction IAM_ROLE default SETTINGS ( S3_BUCKET 'DOC-EXAMPLE-BUCKET' );