As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Conceder permissões para armazenamento do Amazon S3 entre contas
Ao configurar seu SageMaker domínio ou perfil de usuário para que os usuários acessem o SageMaker Canvas, você especifica um local de armazenamento do Amazon S3 para artefatos do Canvas. Esses artefatos incluem cópias salvas de seus conjuntos de dados de entrada, artefatos de modelo, previsões e outros dados da aplicação. Você pode usar o bucket Amazon S3 padrão SageMaker criado ou personalizar o local de armazenamento e especificar seu próprio bucket para armazenar dados do aplicativo Canvas.
Você pode especificar um bucket do Amazon S3 em outra AWS conta para armazenar seus dados do Canvas, mas primeiro você deve conceder permissões entre contas para que o Canvas possa acessar o bucket.
As seções a seguir descrevem como conceder permissões ao Canvas para carregar e baixar objetos de e para um bucket do Amazon S3 em outra conta. Há permissões adicionais para quando seu bucket é criptografado com AWS KMS.
Requisitos
Antes de começar, reveja os seguintes requisitos:
Os buckets do Amazon S3 entre contas (e quaisquer chaves AWS KMS associadas) devem estar na AWS mesma região do domínio de usuário ou perfil de usuário do Canvas.
O Amazon S3 final URI para a pasta de treinamento em seu local de armazenamento do Canvas deve ter 128 caracteres ou menos. O S3 final URI consiste no caminho do seu bucket
s3://<your-bucket-name>/<folder-name>/
mais o caminho que o Canvas adiciona ao seu bucket:Canvas/<user-profile-name>/Training
. Por exemplo, um caminho aceitável com menos de 128 caracteres és3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training
.
Permissões para buckets do Amazon S3 entre contas
A seção a seguir descreve as etapas básicas para conceder as permissões necessárias para que o Canvas possa acessar seu bucket do Amazon S3 em outra conta. Para obter instruções mais detalhadas, consulte o Exemplo 2: Concessão de permissões de bucket entre contas no Guia do usuário do Amazon S3.
-
Crie um bucket do Amazon S3,
bucketA
, na Conta A. -
O usuário do Canvas existe em outra conta chamada Conta B. Nas etapas a seguir, nos referimos à IAM função do usuário do Canvas como
roleB
na Conta B.Dê permissão à IAM função
roleB
na Conta B para baixar (GetObject
) e carregar (PutObject
) objetos debucketA
e para a Conta A anexando uma IAM política.Para limitar o acesso a uma pasta de bucket específica, defina o nome da pasta no elemento de recurso, como
arn:aws:s3:::<bucketA>/FolderName/*
. Para obter mais informações, consulte Como posso usar IAM políticas para conceder acesso específico ao usuário a pastas específicas? nota
Ações no nível do bucket, como
GetBucketCors
eGetBucketLocation
, devem ser adicionadas aos recursos no nível do bucket, não às pastas.O exemplo de IAM política a seguir concede as permissões necessárias
roleB
para acessar objetos embucketA
:{ "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", ] } ] }
-
Configure a política de bucket
bucketA
na Conta A para conceder permissões à IAM funçãoroleB
na Conta B.nota
Os administradores também devem desativar o Bloqueio de todo o acesso público na seção Permissões do bucket.
Veja a seguir um exemplo de política de bucket para
bucketA
conceder as permissões necessárias pararoleB
:{ "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" } ] }
Após configurar as permissões anteriores, seu perfil de usuário do Canvas na Conta B agora pode usar o bucket do Amazon S3 na Conta A como local de armazenamento para artefatos do Canvas.
Permissões para buckets Amazon S3 de várias contas criptografados com AWS KMS
O procedimento a seguir mostra como conceder as permissões necessárias para que o Canvas possa acessar seu bucket do Amazon S3 em outra conta criptografada com. AWS KMS As etapas são semelhantes ao procedimento acima, mas com permissões adicionais. Para obter mais informações sobre como conceder acesso à KMS chave entre contas, consulte Permitir que usuários de outras contas usem uma KMS chave no Guia do AWS KMS desenvolvedor.
-
Crie um bucket do Amazon S3 e uma
bucketA
chave do Amazon KMS S3 na Conta A.s3KmsInAccountA
-
O usuário do Canvas existe em outra conta chamada Conta B. Nas etapas a seguir, nos referimos à IAM função do usuário do Canvas como
roleB
na Conta B.Dê permissão à IAM função
roleB
na Conta B para fazer o seguinte:Fazer download (
GetObject
) e upload (PutObject
) de objetos dobucketA
na Conta A.Acesse a AWS KMS chave
s3KmsInAccountA
na Conta A.
O exemplo IAM de política a seguir concede as permissões necessárias
roleB
para acessar objetosbucketA
e usar a KMS chaves3KmsInAccountA
:{ "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" } ] }
-
Configure a política de bucket
bucketA
e a política de chavess3KmsInAccountA
na Conta A para conceder permissões à IAM funçãoroleB
na Conta B.Veja a seguir um exemplo de política de bucket para
bucketA
conceder as permissões necessárias pararoleB
:{ "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" } ] }
O exemplo a seguir é uma política de chaves que você anexa à KMS chave
s3KmsInAccountA
na Conta A para concederroleB
acesso. Para obter mais informações sobre como criar e anexar uma declaração de política de chave, consulte Criar uma política de chave no Guia do desenvolvedor do 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": "*" }
Depois de configurar as permissões anteriores, seu perfil de usuário do Canvas na Conta B agora pode usar o bucket criptografado do Amazon S3 na Conta A como local de armazenamento para artefatos do Canvas.