

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
<a name="canvas-permissions-cross-account"></a>

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
<a name="canvas-permissions-cross-account-prereqs"></a>

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 name="canvas-permissions-cross-account-s3"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) no *Guia do usuário do Amazon S3*.

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

1. 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?](https://aws.amazon.com/premiumsupport/knowledge-center/iam-s3-user-specific-folder/)
**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 em`bucketA`:

------
#### [ JSON ]

****  

   ```
   {
       "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"
               ]
           }
       ]
   }
   ```

------

1. 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`:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333: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
<a name="canvas-permissions-cross-account-s3-kms"></a>

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](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) 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.

1. 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`:

------
#### [ JSON ]

****  

   ```
   {
       "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:us-east-1:111122223333:key/s3KmsInAccountA"
           }
       ]
   }
   ```

------

1. 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`:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333: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](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) 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.