Conceder permissões para armazenamento do Amazon S3 entre contas - SageMaker IA da Amazon

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.

  1. Crie um bucket do Amazon S3, bucketA, na Conta A.

  2. 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 para bucketA 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 e GetBucketLocation, 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", ] } ] }
  3. Configure a política de bucket para bucketA na Conta A para conceder permissões ao perfil do IAM roleB 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 para roleB:

    { "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 .

  1. Crie um bucket do Amazon S3 bucketA e uma chave do KMS do Amazon S3 s3KmsInAccountA na Conta A.

  2. 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 do bucketA 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 no bucketA e usar a chave do 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" } ] }
  3. Configure a política de bucket bucketA e a política de chave do s3KmsInAccountA na Conta A para conceder permissões ao perfil do IAM roleB na Conta B.

    Veja a seguir um exemplo de política de bucket para bucketA conceder as permissões necessárias para roleB:

    { "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 a roleB. 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.