기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용자가 SageMaker Canvas에 액세스하도록 SageMaker AI 도메인 또는 사용자 프로필을 설정할 때 Canvas 아티팩트에 대한 Amazon S3 스토리지 위치를 지정합니다. 이러한 아티팩트에는 입력 데이터 집합, 모델 아티팩트, 예측 및 기타 애플리케이션 데이터의 저장된 사본이 포함됩니다. 기본 SageMaker AI 생성 Amazon S3 버킷을 사용하거나, 스토리지 위치를 사용자 지정하고 Canvas 애플리케이션 데이터를 저장하기 위한 자체 버킷을 지정할 수 있습니다.
Canvas 데이터를 저장하기 위해 다른 AWS 계정에서 Amazon S3 버킷을 지정할 수 있지만 먼저 Canvas가 버킷에 액세스할 수 있도록 교차 계정 권한을 부여해야 합니다.
다음 섹션에서는 다른 계정의 Amazon S3 버킷으로 객체를 업로드 및 다운로드할 수 있는 권한을 Canvas에 부여하는 방법을 설명합니다. 버킷을 암호화할 때에 대한 추가 권한이 있습니다 AWS KMS.
요구 사항
시작하기 전에 다음 요구 사항을 확인하세요.
교차 계정 Amazon S3 버킷(및 연결된 AWS KMS 키)은 Canvas 사용자 도메인 또는 사용자 프로필과 동일한 AWS 리전에 있어야 합니다.
Canvas 스토리지 위치에 있는 훈련 폴더의 최종 Amazon S3 URI는 128자 이하여야 합니다. 최종 S3 URI는 버킷 경로
s3://<your-bucket-name>/<folder-name>/
와 Canvas가 버킷에 추가하는 경로Canvas/<user-profile-name>/Training
로 구성됩니다. 예를 들어 128자 미만의 허용 가능한 경로는s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training
입니다.
계정 간 Amazon S3 버킷에 대한 사용 권한
다음 섹션에서는 Canvas가 다른 계정의 Amazon S3 버킷에 액세스할 수 있도록 필요한 권한을 부여하는 기본 단계를 설명합니다. 자세한 지침은 Amazon S3 사용 설명서의 예제 2: 계정 간 버킷 권한을 부여하는 버킷 소유자를 참조하세요.
-
계정 A에 Amazon S3 버킷
bucketA
을 생성합니다. -
Canvas 사용자는 계정 B라는 다른 계정에 존재합니다. 다음 단계에서는 다음 단계에서는 Canvas 사용자의 IAM 역할을 계정 B의
roleB
로 언급합니다.IAM 정책을 연결하여 계정 B의 IAM 역할
roleB
에 계정 A의bucketA
객체를 다운로드(GetObject
) 하고 업로드(PutObject
) 할 수 있는 권한을 부여합니다.특정 버킷 폴더에 대한 액세스를 제한하려면 리소스 요소에 폴더 이름(예:
arn:aws:s3:::<bucketA>/FolderName/*
)을 정의합니다. 자세한 내용은 IAM 정책을 사용하여 특정 폴더에 대한 사용자별 액세스 권한을 부여하려면 어떻게 해야 합니까?를 참조하세요. 참고
GetBucketCors
및GetBucketLocation
와 같은 버킷 수준 작업은 폴더가 아닌 버킷 수준 리소스에 추가해야 합니다.다음 예제 IAM 정책은
roleB
가bucketA
의 개체에 액세스하는 데 필요한 권한을 부여합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::bucketA/FolderName/*", ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketCors", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::bucketA", ] } ] }
-
계정 A의
bucketA
에 대한 버킷 정책을 구성하여 계정 B의 IAM 역할roleB
에 대한 사용 권한을 부여합니다.참고
또한 관리자는 버킷 권한 섹션에서 모든 퍼블릭 액세스 차단을 해제해야 합니다.
다음은
roleB
에게 필요한 권한을 부여하기 위한bucketA
의 버킷 정책의 예시입니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucketA/FolderName/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:ListBucket", "s3:GetBucketCors", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucketA" } ] }
이전 권한을 구성한 후 계정 B의 Canvas 사용자 프로필은 이제 계정 A의 Amazon S3 버킷을 Canvas 아티팩트의 스토리지 위치로 사용할 수 있습니다.
로 암호화된 교차 계정 Amazon S3 버킷에 대한 권한 AWS KMS
다음 절차에서는 Canvas가 암호화된 다른 계정의 Amazon S3 버킷에 액세스할 수 있도록 필요한 권한을 부여하는 방법을 보여줍니다 AWS KMS. 단계는 위의 절차와 비슷하지만 추가 권한이 있습니다. 계정 간 KMS 키 액세스 권한 부여에 대한 자세한 내용은 AWS KMS 개발자 안내서의 다른 계정의 사용자가 KMS를 사용하도록 허용을 참조하세요.
-
계정 A에 Amazon S3 버킷
bucketA
와 Amazon S3 KMS 키s3KmsInAccountA
를 만듭니다. -
Canvas 사용자는 계정 B라는 다른 계정에 존재니다.다음 단계에서는 다음 단계에서는 Canvas 사용자의 IAM 역할을 계정 B의
roleB
로 언급합니다.계정 B의 IAM 역할
roleB
에 다음 작업을 수행할 수 있는 권한을 부여합니다.계정 A의
bucketA
에서 개체를 다운로드(GetObject
)하고 업로드(PutObject
)합니다.계정 A의 AWS KMS 키
s3KmsInAccountA
에 액세스합니다.
다음 예제 IAM 정책은
roleB
이bucketA
의 객체에 액세스하고 KMS 키s3KmsInAccountA
를 사용하는 데 필요한 권한을 부여합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::bucketA/FolderName/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketCors", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::bucketA" ] }, { "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlainText", "kms:Decrypt" ], "Effect": "Allow", "Resource": "arn:aws:kms:{region}:accountA:key/s3KmsInAccountA" } ] }
-
계정 A에서
bucketA
에 대한 버킷 정책과s3KmsInAccountA
에 대한 키 정책을 구성하여 계정 B의 IAM 역할roleB
에 대한 권한을 부여합니다.다음은
roleB
에게 필요한 권한을 부여하기 위한bucketA
의 버킷 정책의 예시입니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::bucketA/FolderName/*" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountB:role/roleB" }, "Action": [ "s3:GetBucketCors", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucketA" } ] }
다음 예는 계정 A의 KMS 키
s3KmsInAccountA
에 연결하여roleB
액세스 권한을 부여하는 키 정책입니다. 키 정책 설명을 만들고 연결하는 방법에 대한 자세한 내용은 AWS KMS 개발자 안내서의 키 정책 생성을 참조하세요.{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::accountB:role/roleB" ] }, "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlainText", "kms:Decrypt" ], "Resource": "*" }
이전 권한을 구성한 후 계정 B의 Canvas 사용자 프로필은 이제 계정 A의 암호화된 Amazon S3 버킷을 Canvas 아티팩트의 스토리지 위치로 사용할 수 있습니다.