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 domínio de SageMaker IA 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, predições e outros dados da aplicação. Você pode usar o bucket Amazon S3 padrão criado por SageMaker IA ou pode 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 URI final do Amazon S3 para a pasta de treinamento em seu local de armazenamento do Canvas deve ter 128 caracteres ou menos. O URI final do S3 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 ao perfil do IAM do usuário do Canvas como
roleB
na Conta B.Dê permissão ao perfil do IAM
roleB
na Conta B para baixar (GetObject
) e carregar (PutObject
) objetos de e parabucketA
na Conta A anexando uma política do IAM.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 as políticas do IAM 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 política do IAM a seguir concede as permissões necessárias para
roleB
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 para
bucketA
na Conta A para conceder permissões ao perfil do IAMroleB
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 a uma chave do KMS, consulte Permitir que usuários de outras contas usem uma chave do KMS no Guia do desenvolvedor do AWS KMS .
-
Crie um bucket do Amazon S3
bucketA
e uma chave do KMS do Amazon S3s3KmsInAccountA
na Conta A. -
O usuário do Canvas existe em outra conta chamada Conta B. Nas etapas a seguir, nos referimos ao perfil do IAM do usuário do Canvas como
roleB
na Conta B.Dê permissão ao perfil do IAM
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 de política do IAM a seguir concede as permissões necessárias para
roleB
acessar objetos nobucketA
e usar a chave do KMSs3KmsInAccountA
:{ "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 chave dos3KmsInAccountA
na Conta A para conceder permissões ao perfil do IAMroleB
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 chave que você anexa à chave do KMS
s3KmsInAccountA
na Conta A para conceder acesso aroleB
. 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": "*" }
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.