기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
-
데이터 레이크 관리자 생성 - 네임스페이스 초대를 수락할 권한이 있고 AWS Glue Data Catalog 객체(카탈로그, 데이터베이스, 테이블/보기)를 생성하고 Lake Formation 권한을 다른 사용자에게 부여하는 IAM 역할을 생성합니다.
데이터 레이크 관리자를 생성하는 방법에 대한 단계별 지침은 데이터 레이크 관리자 생성 섹션을 참조하세요.
-
데이터 레이크 관리자 권한을 업데이트합니다.
데이터 레이크 관리자 권한 외에도 데이터 레이크 관리자는 Lake Formation에서 Amazon Redshift 네임스페이스 초대를 수락하고, 데이터 카탈로그 리소스를 생성 또는 업데이트하고, 데이터 레이크 액세스를 활성화하려면 다음 권한이 필요합니다.
{ "Version": "2012-10-17", "Id": "glue-enable-datalake-access", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:AssociateDataShareConsumer", "redshift:DescribeDataSharesForConsumer", "redshift:DescribeDataShares", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:DeleteNamespace", "redshift-serverless:DeleteWorkgroup", "ec2:DescribeAccountAttributes", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "s3:createBucket", "s3:deleteBucket", "s3:putBucketPolicy", "s3:putEncryptionConfiguration", "s3:putLifecycleConfiguration", "s3:putBucketVersioning", "iam:CreateRole" ], "Resource": "*" } ] } { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/
data transfer role name
", "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } } -
페더레이션 카탈로그를 생성하는 데 사용되는 IAM 역할이 데이터 레이크 관리자가 아닌 경우 역할에
Create catalog
권한을 부여해야 합니다.카탈로그 생성자를 생성하려면
Lake Formation 콘솔(https://console.aws.amazon.com/lakeformation/
)을 엽니다. 관리에서 관리 역할 및 작업을 선택합니다.
권한 부여를 선택합니다.
권한 부여 화면에서 IAM 사용자 또는 역할을 선택합니다.
카탈로그 권한 생성을 선택합니다.
선택적으로 카탈로그 생성 권한을 부여할 수도 있습니다. 부여 가능한 권한을 통해 카탈로그 생성자는 다른 보안 주체에게
Create catalog
권한을 부여할 수 있습니다.권한 부여를 선택합니다.
AWS CLI 페더레이션 카탈로그를 생성할 수 있는 권한을 부여하는 예제입니다.
aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin" }, "Resource": { "Catalog": { } }, "Permissions": [ "CREATE_CATALOG", "DESCRIBE" ] }'
-
읽기 전용 관리자 역할을 생성하여 Amazon Redshift Query Editor v2의 데이터 카탈로그에서 Amazon Redshift 페더레이션 카탈로그를 검색합니다.
Amazon Redshift Query Editor v2에서 페더레이션 카탈로그의 Amazon Redshift 테이블을 쿼리하려면 읽기 전용 관리자 역할 정책에 Amazon Redshift 서비스 연결 역할-에 대한 ARN이 포함되어 있는지 확인합니다
AWSServiceRoleForRedshift
.aws lakeformation put-data-lake-settings --region us-east-1 \ --data-lake-settings \ '{ "DataLakeAdmins": [{"DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/Admin"}], "ReadOnlyAdmins":[{"DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift"}], "CreateDatabaseDefaultPermissions":[], "CreateTableDefaultPermissions":[], "Parameters":{"CROSS_ACCOUNT_VERSION":"4","SET_CONTEXT":"TRUE"} }'
-
Amazon Redshift가 사용자를 대신하여 Amazon S3 버킷과 데이터를 주고 받기 위해 수임할 수 있는 데이터 전송 역할을 생성합니다.
Athena, Amazon EMR on Amazon EC2와 같은 Apache Iceberg 호환 쿼리 엔진에 대한 데이터 레이크 액세스를 활성화하여 데이터 카탈로그의 Amazon Redshift 리소스에 액세스하는 경우 Amazon S3 버킷과 데이터를 주고받는 데 필요한 권한이 있는 IAM 역할을 생성해야 합니다.
{ "Version": "2012-10-17", "Id": "glue-enable-datalake-access", "Statement": [{ "Sid": "DataTransferRole policy", "Effect": "Allow", "Action": [ "glue:GetCatalog", "glue:GetDatabase", "kms:GenerateDataKey", "kms:Decrypt"], "Resource": "*" } ] }
-
AWS Glue 및 Amazon Redshift 서비스에 대한 데이터 전송 역할에 다음 신뢰 정책을 추가하여 Amazon S3 버킷과 데이터를 주고받는 역할을 수임합니다.
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "glue.amazonaws.com" ] }, "Action": "sts:AssumeRole" }] }
-
고객 관리 AWS KMS 형 키를 사용하여 Amazon Redshift 클러스터/네임스페이스의 데이터를 암호화하는 경우 키에 다음 키 정책을 추가합니다. 계정 번호를 유효한 AWS 계정 번호로 바꾸고 데이터 전송 역할 이름을 지정합니다. 기본적으로 Amazon Redshift 클러스터의 데이터는 KMS 키를 사용하여 암호화됩니다. Lake Formation은 암호화를 위한 사용자 지정 KMS 키를 생성하는 옵션을 제공합니다. 고객 관리형 키를 사용하는 경우 키에 특정 키 정책을 추가해야 합니다.
고객 관리형 키의 권한 관리에 대한 자세한 내용은 고객 관리형 키를 참조하세요.
{ "Version": "2012-10-17", "Id": "auto-redshift-3", "Statement": [ { "Sid": "Allow access through RedShift for all principals in the account that are authorized to use RedShift", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "
123456789012
", "kms:ViaService": "redshift.us-east-1.amazonaws.com" } } }, { "Sid": "Allow access through RedShift-Serverless for all principals in the account that are authorized to use RedShift-Serverless", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "123456789012
", "kms:ViaService": "redshift-serverless.us-east-1.amazonaws.com" } } }, { "Sid": "Allow direct access to key metadata to the account", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012
:root" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" }, { "Sid": "Allow GenerateDataKey + Decrypt to the DataTransferRole via s3", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012
:role/data-transfer-role-name
" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }, "Condition": { "StringEquals": { "kms:ViaService": "s3.us-east-1.amazonaws.com
" } } ] }