View a markdown version of this page

액세스 제어를에서 IAM AWS Lake Formation 으로 변경 - AWS Lake Formation

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

액세스 제어를에서 IAM AWS Lake Formation 으로 변경

이 섹션에서는와 통합된 Amazon S3 Tables에 대한 액세스 제어를 AWS Lake Formation 권한 부여에서 IAM 권한으로 변경하는 워크플로를 설명합니다 AWS Glue Data Catalog.

중요

IAM에 대한 권한 AWS Lake Formation 부여에서 액세스 제어를 변경하면 S3 Tables 리소스에 대한 모든 기존 Lake Formation 기반 액세스가 취소됩니다. 2단계를 완료한 후 이전에 Lake Formation 권한 부여를 통해 데이터에 액세스한 사용자 및 역할은 즉시 액세스 권한을 잃게 됩니다. 카탈로그를 업데이트하기 전에 1단계에서 IAM 액세스 권한을 부여해야 합니다. 유지 관리 기간 동안이 마이그레이션을 계획하고 데이터 팀과 조정하세요.

중요

Data Catalog 객체를 사용하는 열 수준 액세스 및 데이터 셀 필터와 같은 세분화된 액세스 제어는 AWS Lake Formation 만 사용할 때 사용할 수 있습니다. 액세스 제어를에서 IAM AWS Lake Formation 으로 마이그레이션하기 전에를 사용하여 기존 Lake Formation 권한 부여를 감사aws lakeformation list-permissions하고 동등한 IAM 정책이 사용자에게 필요한 액세스를 제공할 수 있는지 확인합니다. 세분화된 Lake Formation 권한 부여에 의존하는 모든 보안 주체는 액세스 제어를 마이그레이션한 후 전체 테이블 수준 IAM 액세스가 필요합니다.

사전 조건

시작하기 전에 다음을 확인합니다.

  • 마이그레이션 중인 리소스에 대해 현재 유효한 모든 Lake Formation 권한 부여를 식별했습니다. aws lakeformation list-permissions --resource-type TABLE를 실행하여 검토합니다.

  • 영향을 받는 모든 보안 주체에 대해 동등한 액세스를 제공하는 IAM 정책을 준비했습니다.

  • Lake Formation에 등록된 IAM 역할에는 여전히가 있습니다lakeformation:GetDataAccess(하이브리드 전환 기간 동안 필요).

사용 AWS CLI

  1. 1단계: 보안 주체에 IAM 권한 부여

    액세스 권한이 필요한 사용자 또는 역할에 IAM 정책을 연결합니다. 정책에는 AWS Glue 메타데이터 권한과 S3 Tables 데이터 권한이 모두 포함되어야 합니다.

    참고

    다음 예제 정책은 읽기 액세스 권한만 제공합니다.

    aws iam put-user-policy \ --user-name GlueIAMAccessUser \ --policy-name S3TablesIAMAccessPolicy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueMetadataAccess", "Effect": "Allow", "Action": [ "glue:GetCatalog", "glue:GetDatabase", "glue:GetTable" ], "Resource": [ "arn:aws:glue:us-east-1:AWSAccountID:catalog/s3tablescatalog", "arn:aws:glue:us-east-1:AWSAccountID:database/s3tablescatalog/table-bucket-name/namespace", "arn:aws:glue:us-east-1:AWSAccountID:table/s3tablescatalog/table-bucket-name/namespace/*" ] }, { "Sid": "S3TablesDataAccess", "Effect": "Allow", "Action": [ "s3tables:GetTableBucket", "s3tables:GetTable", "s3tables:GetTableMetadataLocation", "s3tables:GetTableData" ], "Resource": [ "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/table-bucket-name", "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/table-bucket-name/table/*" ] } ] }'

    계속하기 전에 영향을 받는 모든 사용자 및 역할이 IAM 자격 증명을 사용하여 예상 테이블에 액세스할 수 있는지 확인합니다.

  2. 2단계: 카탈로그를 업데이트하여 IAM 기본 권한 복원

    카탈로그를 업데이트하여 ALLCreateDatabaseDefaultPermissionsCreateTableDefaultPermissions 부여합니다IAM_ALLOWED_PRINCIPALS. 변경 사항이 새로 생성된 리소스뿐만 아니라 기존의 모든 하위 리소스로 전파Accept되도록 OverwriteChildResourcePermissionsWithDefault로 설정합니다.

    aws glue update-catalog \ --catalog-id "s3tablescatalog" \ --catalog-input '{ "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions": [{ "Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"}, "Permissions": ["ALL"] }], "CreateTableDefaultPermissions": [{ "Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"}, "Permissions": ["ALL"] }], "OverwriteChildResourcePermissionsWithDefault": "Accept" }'
  3. 3단계: Lake Formation에서 리소스 등록 취소

    모든 액세스가 IAM 정책을 통해 작동하고 있고 Lake Formation 권한 부여에 의존하는 보안 주체가 없음을 확인한 후에는 Lake Formation에서 리소스 등록을 취소하여 마이그레이션을 완료할 수 있습니다.

    aws lakeformation deregister-resource \ --resource-arn "arn:aws:s3tables:us-east-1:AWSAccountID:bucket/*"
    참고

    리소스를 등록 취소한 후 더 이상 필요하지 않은 IAM 보안 주체lakeformation:GetDataAccess에서를 제거합니다.

revoke-permissions 단계가 필요하지 않습니다.