계정 간 오프라인 저장소 액세스 - 아마존 SageMaker

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

계정 간 오프라인 저장소 액세스

Amazon SageMaker Feature Store를 사용하면 사용자가 한 계정 (계정 A) 에서 기능 그룹을 생성하고 다른 계정 (계정 B) 의 Amazon S3 버킷을 사용하여 오프라인 스토어에 기능 그룹을 구성할 수 있습니다. 다음 섹션의 단계를 사용하여 이를 설정할 수 있습니다.

1단계: A 계정에서 오프라인 저장소 액세스 역할 설정

먼저 Amazon SageMaker Feature Store에서 오프라인 스토어에 데이터를 쓸 수 있는 역할을 설정합니다. 이 작업을 수행하는 가장 간단한 방법은 AmazonSageMakerFeatureStoreAccess정책을 사용하여 새 역할을 생성하거나 AmazonSageMakerFeatureStoreAccess정책이 이미 연결된 기존 역할을 사용하는 것입니다. 이 문서에서는 이 정책을 Account-A-Offline-Feature-Store-Role-ARN으로 참조합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::*SageMaker*", "arn:aws:s3:::*Sagemaker*", "arn:aws:s3:::*sagemaker*" ] } ] }

위의 코드 스니펫은 AmazonSageMakerFeatureStoreAccess정책을 보여줍니다. 이 정책의 Resource섹션 범위는 기본적으로 SageMaker, Sagemaker또는 sagemaker를 포함하는 이름을 가진 S3 버킷으로 제한됩니다. 즉, 사용 중인 오프라인 저장소 Amazon S3 버킷은 이 명명 규칙을 따라야 합니다. 이 경우가 아니거나 리소스의 범위를 더 좁히려면 정책을 콘솔의 Amazon S3 버킷 정책에 복사하여 붙여넣고 Resource섹션을 arn:aws:s3:::your-offline-store-bucket-name으로 사용자 지정한 다음 역할에 연결할 수 있습니다.

또한 이 역할에는 다음이 포함되어야 합니다. AWS KMS 권한이 첨부되었습니다. 최소한 고객 관리형 키를 사용하여 오프라인 저장소에 글을 쓸 수 있도록 kms:GenerateDataKey권한이 필요합니다. 계정 간 시나리오에서 고객 관리형 키가 필요한 이유와 설정 방법에 대해 알아보려면 3단계를 참조하세요. 다음 정책은 인라인 정책을 보여줍니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:*:Account-A-Account-Id:key/*" } ] }

이 정책의 Resource 섹션은 계정 A의 모든 키로 범위가 지정됩니다. 범위를 더 좁히려면 3단계에서 오프라인 스토어 KMS 키를 설정한 후 이 정책으로 돌아가 키로 ARN 바꾸십시오.

2단계: B 계정에서 오프라인 저장소 Amazon S3 버킷을 설정합니다.

B 계정에 Amazon S3 버킷을 생성합니다. 기본 AmazonSageMakerFeatureStoreAccess정책을 사용하는 경우 버킷 이름에 SageMaker, Sagemaker또는 sagemaker가 포함되어야 합니다. 다음 예와 같이 버킷 정책을 편집하여 A 계정이 객체를 읽고 쓸 수 있도록 허용합니다.

이 문서에서는 다음 예제 버킷 정책을 Account-B-Offline-Feature-Store-Bucket으로 참조합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3CrossAccountBucketAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetBucketAcl" ], "Principal": { "AWS": [ "*Account-A-Offline-Feature-Store-Role-ARN*" ], }, "Resource": [ "arn:aws:s3:::offline-store-bucket-name/*", "arn:aws:s3:::offline-store-bucket-name" ] } ] }

위 정책에서 보안 주체는 1단계에서 계정 A에서 생성하여 오프라인 스토어에 쓰기 위해 Amazon SageMaker Feature Store에 제공한 역할입니다. Account-A-Offline-Feature-Store-Role-ARN 에서 Principal 여러 ARN 역할을 제공할 수 있습니다.

3단계: 오프라인 스토어 설정 AWS KMS 계정 A의 암호화 키

Amazon SageMaker Feature Store는 오프라인 스토어의 Amazon S3 객체에 대해 서버 측 암호화가 항상 활성화되도록 합니다. 계정 간 사용 사례의 경우, 오프라인 저장소에 쓸 수 있는 사용자(이 경우 A 계정의 Account-A-Offline-Feature-Store-Role-ARN)와 오프라인 저장소에서 읽을 수 있는 사용자(이 경우 B 계정의 ID)를 제어할 수 있도록 고객 관리형 키를 제공해야 합니다.

이 문서에서는 다음 예제 키 정책을 Account-A-Offline-Feature-Store-KMS-Key-ARN으로 참조합니다.

{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-Account-Id:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::Account-A-Account-Id:role/Administrator", ] }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow Feature Store to get information about the customer managed key", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "*Account-A-Offline-Feature-Store-Role-ARN*", "*arn:aws:iam::Account-B-Account-Id:root*" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:ListAliases", "kms:ListGrants" ], "Resource": "*", } ] }

4단계: A 계정에 특성 그룹 생성

다음으로, B 계정에 오프라인 저장소 Amazon S3 버킷을 사용하여 A 계정에 특성 그룹을 생성합니다.이렇게 하려면 RoleArn, OfflineStoreConfig.S3StorageConfig.KmsKeyId, OfflineStoreConfig.S3StorageConfig.S3Uri에 대해 각각 다음 파라미터를 제공합니다.

  • Account-A-Offline-Feature-Store-Role-ARNRoleArn으로 제공합니다.

  • Account-A-Offline-Feature-Store-KMS-Key-ARNOfflineStoreConfig.S3StorageConfig.KmsKeyId에 제공합니다.

  • Account-B-Offline-Feature-Store-BucketOfflineStoreConfig.S3StorageConfig.S3Uri에 제공합니다.