AWS 계정 전반에서 암호화된 Amazon S3 위치 등록 - AWS Lake Formation

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

AWS 계정 전반에서 암호화된 Amazon S3 위치 등록

AWS Lake Formation AWS Key Management Service(AWS KMS) 와 통합되어 Amazon Simple Storage Service (Amazon S3) 위치의 데이터를 암호화 및 해독하도록 다른 통합 서비스를 보다 쉽게 설정할 수 있습니다.

고객 관리형 키와 둘 다 지원됩니다. AWS 관리형 키 클라이언트 측 암호화/암호 해독은 지원되지 않습니다.

중요

요청자 지불이 활성화된 Amazon S3 버킷은 등록하지 마세요. Lake Formation에 등록된 버킷의 경우 버킷 등록에 사용된 역할은 항상 요청자로 표시됩니다. 다른 AWS 계정에서 버킷에 액세스하는 경우, 역할이 버킷 소유자와 동일한 계정에 속하면 버킷 소유자에게 데이터 액세스 요금이 부과됩니다.

이 섹션에서는 다음과 같은 상황에서 Amazon S3 위치를 등록하는 방법에 대해 설명합니다.

  • Amazon S3 위치의 데이터가 AWS KMS에서 생성된 KMS 키로 암호화됩니다.

  • Amazon S3 위치는 과 동일한 AWS 계정에 있지 않습니다 AWS Glue Data Catalog.

  • KMS 키는 데이터 카탈로그와 동일한 AWS 계정에 있거나 그렇지 않습니다.

계정 A의 AWS Identity and Access Management (IAM) 역할을 사용하여 AWS 계정 B에 AWS KMS암호화된 Amazon S3 버킷을 등록하려면 다음 권한이 필요합니다. AWS

  • 계정 A의 역할은 계정 B의 버킷에 대한 권한을 부여해야 합니다.

  • 계정 B의 버킷 정책은 계정 A의 역할에 대해 액세스 권한을 부여해야 합니다.

  • KMS 키가 계정 B에 있는 경우 키 정책은 계정 A의 역할에 대한 액세스 권한을 부여하고, 계정 A의 역할은 KMS 키에 대한 권한을 부여해야 합니다.

다음 절차에서는 데이터 카탈로그가 포함된 AWS 계정에 역할을 생성합니다 (이전 설명의 계정 A). 그런 다음 이 역할을 사용하여 위치를 등록합니다. Lake Formation은 Amazon S3의 기본 데이터에 액세스할 때 이 역할을 맡습니다. 맡은 역할에는 KMS 키에 대한 필수 권한이 있습니다. 따라서 ETL 작업이나 Amazon Athena와 같은 통합 서비스를 통해 기본 데이터에 액세스하는 보안 주체에 KMS 키에 대한 권한을 부여하지 않아도 됩니다.

중요

Lake Formation 서비스 연결 역할을 사용하여 다른 계정에 위치를 등록할 수 없습니다. 대신 사용자 정의 역할을 사용해야 합니다. 역할은 위치를 등록하는 데 사용되는 역할에 대한 요구 사항의 요구 사항을 충족해야 합니다. 서비스 링크 역할에 대한 자세한 내용은 Lake Formation의 서비스 연결 역할 권한을(를) 참조하세요.

시작하기 전

위치를 등록하는 데 사용되는 역할에 대한 요구 사항을 검토합니다.

여러 AWS 계정에서 암호화된 Amazon S3 위치를 등록하려면
  1. 데이터 카탈로그와 동일한 AWS 계정에서 AWS Management Console 로그인하고 에서 https://console.aws.amazon.com/iam/ IAM 콘솔을 엽니다.

  2. 위치를 등록하는 데 사용되는 역할에 대한 요구 사항의 요구 사항을 충족하는 새 역할을 생성하거나 기존 역할을 봅니다. 이 역할은 위치에 대한 Amazon S3 권한을 부여하는 정책을 포함해야 합니다.

  3. KMS 키가 데이터 카탈로그와 동일한 계정에 있지 않은 경우 KMS 키에 필요한 권한을 부여하는 인라인 정책을 역할에 추가합니다. 다음은 예제 정책입니다. <cmk-region>및 < cmk-account-id >를 KMS 키의 지역 및 계정 번호로 바꾸십시오. <key-id>를 키 ID로 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:<cmk-region>:<cmk-account-id>:key/<key-id>" } ] }
  4. Amazon S3 콘솔에서 역할에 필요한 Amazon S3 권한을 부여하는 버킷 정책을 추가합니다. 다음은 버킷 정책의 예입니다. < catalog-account-id >를 데이터 카탈로그의 AWS 계정 번호, <role-name>역할 이름, <bucket-name>버킷 이름으로 바꾸십시오.

    { "Version": "2012-10-17", "Statement": [ { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::<catalog-account-id>:role/<role-name>" }, "Action":"s3:ListBucket", "Resource":"arn:aws:s3:::<bucket-name>" }, { "Effect":"Allow", "Principal": { "AWS":"arn:aws:iam::<catalog-account-id>:role/<role-name>" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource":"arn:aws:s3:::<bucket-name>/*" } ] }
  5. 에서 AWS KMS KMS 키의 사용자로서 역할을 추가합니다.

    1. https://console.aws.amazon.com/kms 에서 AWS KMS 콘솔을 엽니다. 그런 다음 관리자 사용자 또는 위치를 암호화하는 데 사용된 KMS 키의 키 정책을 수정할 수 있는 사용자로 로그인합니다.

    2. 탐색 창에서 고객 관리형 키를 선택한 다음 KMS 키의 이름을 선택합니다.

    3. KMS 키 세부 정보 페이지의 키 정책 탭에서 키 정책의 JSON 보기가 표시되지 않는 경우 정책 보기로 전환을 선택합니다.

    4. 키 정책 섹션에서 편집을 선택하고 다음 예제와 같이 역할의 Amazon 리소스 이름(ARN)을 Allow use of the key 객체에 추가합니다.

      참고

      해당 객체가 없는 경우 예제에 표시된 권한과 함께 추가하세요.

      ... { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::<catalog-account-id>:role/<role-name>" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, ...

      자세한 내용은AWS Key Management Service 개발자 안내서의 다른 계정의 사용자가 KMS 키를 사용하도록 허용을 참조하세요.

  6. https://console.aws.amazon.com/lakeformation/ 에서 AWS Lake Formation 콘솔을 엽니다. 데이터 카탈로그 AWS 계정에 데이터 레이크 관리자로 로그인합니다.

  7. 탐색 창의 등록 및 수집에서 데이터 레이크 위치를 선택합니다.

  8. 위치 등록을 선택합니다.

  9. 위치 등록 페이지에서 Amazon S3 경로에 위치 경로를 s3://<bucket>/<prefix>로 입력합니다. <bucket>을 버킷 이름으로 바꾸고 <prefix>를 위치의 나머지 경로로 바꿉니다.

    참고

    찾아보기를 선택하면 교차 계정 버킷이 목록에 나타나지 않으므로 경로를 입력해야 합니다.

  10. IAM 역할의 경우 2단계의 역할을 선택합니다.

  11. 위치 등록을 선택합니다.