Configurar acesso para buckets do Amazon S3 - Amazon Bedrock

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á.

Configurar acesso para buckets do Amazon S3

Vários recursos do Amazon Bedrock exigem acesso a dados armazenados em buckets do Amazon S3. Para acessá-los, você deve configurar as seguintes permissões:

Caso de uso Permissões
Permissões para recuperar dados do bucket do S3 s3: GetObject

s3: ListBucket

Permissões para gravar dados no bucket do S3 s3: PutObject
Permissões para descriptografar a chave do KMS que criptografou o bucket do S3 kms:Decrypt

kms:DescribeKey

As identidades ou os recursos aos quais você precisa anexar as permissões acima dependem dos seguintes fatores:

  • Vários recursos no Amazon Bedrock usam perfis de serviço. Se um recurso usa uma perfil de serviço, você deve configurar as permissões para que o perfil de serviço, em vez da identidade do IAM do usuário, tenha acesso aos dados do S3. Alguns recursos do Amazon Bedrock podem criar automaticamente um perfil de serviço para você e anexar as permissões baseadas em identidade necessárias ao perfil de serviço, se você usar o Console de gerenciamento da AWS.

  • Alguns recursos do Amazon Bedrock permitem que uma identidade acesse um bucket do S3 em uma conta diferente. Se os dados do S3 precisarem ser acessados de uma conta diferente, o proprietário do bucket deverá incluir as permissões baseadas em recursos acima em uma política de bucket do S3 anexada ao bucket do S3.

Descrevemos abaixo como determinar onde você precisa anexar as permissões necessárias para acessar os dados do S3:

  • Permissões de identidade do IAM

    • Se você puder criar automaticamente um perfil de serviço no console, as permissões serão configuradas para o perfil de serviço, portanto, não será necessário configurá-lo por conta própria.

    • Se preferir usar um perfil de serviço personalizado ou se a identidade que requer acesso não for um perfil de serviço, navegue até Anexar permissões a uma identidade do IAM para permitir acesso ao bucket do Amazon S3 para saber como criar uma política baseada em identidade com as permissões adequadas.

  • Permissões baseadas em recursos

    • Se a identidade exigir acesso aos dados do S3 na mesma conta, não será necessário anexar uma política de bucket do S3 ao bucket que contém os dados.

    • Se a identidade exigir acesso aos dados do S3 em uma conta diferente, navegue até Anexar uma política de bucket a um bucket do Amazon S3 para permitir acesso de outra conta para saber como criar uma política de bucket do S3 com as permissões adequadas.

      Importante

      A criação automática de uma função de serviço no Console de gerenciamento da AWS atribui as permissões adequadas baseadas em identidade à função, mas você ainda deve configurar a política de bucket do S3 se a identidade que requer acesso a ela estiver em outra. Conta da AWS

Para obter mais informações, consulte os seguintes links:

Prossiga com os tópicos relacionados ao seu caso de uso:

Anexar permissões a uma identidade do IAM para permitir acesso ao bucket do Amazon S3

Este tópico fornece um modelo para anexar uma política a uma identidade do IAM. A política inclui as seguintes declarações que definem permissões para conceder acesso a uma identidade do IAM a um bucket do S3:

  1. Permissões para recuperar dados de um bucket do S3. Essa declaração também inclui uma condição usando a chave de condição s3:prefix para restringir o acesso a uma pasta específica no bucket. Para ter mais informações sobre essa condição, consulte a seção Política de usuário em Exemplo 2: obter uma lista de objetos em um bucket com um prefixo específico.

  2. (Se você precisar gravar dados em um local do S3) Permissões para gravar dados em um bucket do S3. Essa declaração também inclui uma condição usando a chave de aws:ResourceAccount condição para restringir o acesso às solicitações enviadas de uma pessoa específicaConta da AWS.

  3. (Se o bucket do S3 estiver criptografado com uma chave do KMS) Permissões para descrever e descriptografar a chave do KMS que criptografou o bucket do S3.

    nota

    Se o bucket do S3 tiver versionamento habilitado, cada versão de objeto carregada usando esse recurso poderá ter sua própria chave de criptografia. Você é responsável por monitorar a chave de criptografia usada para uma versão de objeto.

Adicione, modifique e remova as declarações, os recursos e as condições na política a seguir e ${values} substitua-as conforme necessário:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "DecryptKMSKey", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}" } ] }

Depois de modificar a política de acordo com seu caso de uso, anexe-a ao perfil de serviço (ou à identidade do IAM) que requer acesso ao bucket do S3. Para saber como anexar permissões a uma identidade do IAM, consulte Adicionar e remover permissões de identidade do IAM.

Anexar uma política de bucket a um bucket do Amazon S3 para permitir acesso de outra conta

Este tópico fornece um modelo para anexar uma política baseada em recursos a um bucket do S3 para permitir acesso de uma identidade do IAM a dados no bucket. A política inclui as seguintes declarações que definem permissões para que uma identidade acesse o bucket:

  1. Permissões para recuperar dados de um bucket do S3.

  2. (Se você precisar gravar dados em um local do S3) Permissões para gravar dados em um bucket do S3.

  3. (Se o bucket do S3 estiver criptografado com uma chave do KMS) Permissões para descrever e descriptografar a chave do KMS que criptografou o bucket do S3.

    nota

    Se o bucket do S3 tiver versionamento habilitado, cada versão de objeto carregada usando esse recurso poderá ter sua própria chave de criptografia. Você é responsável por monitorar a chave de criptografia usada para uma versão de objeto.

As permissões são semelhantes às permissões baseadas em identidade descritas em Anexar permissões a uma identidade do IAM para permitir acesso ao bucket do Amazon S3. No entanto, cada declaração também exige que você especifique a identidade para a qual conceder permissões ao recurso no campo Principal. Especifique a identidade (com a maioria dos recursos no Amazon Bedrock, esse é o perfil de serviço) no campo Principal. Adicione, modifique e remova as declarações, os recursos e as condições na política a seguir e ${values} substitua-as conforme necessário:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${S3Bucket}", "arn:aws:s3:::${S3Bucket}/*" ] }, { "Sid": "DecryptKMSKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ServiceRole" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}" } ] }

Depois de modificar a política de acordo com seu caso de uso, anexe-a ao bucket do S3. Para saber como anexar uma política de bucket a um bucket do S3, consulte Adicionar uma política de bucket usando o console do Amazon S3.

(Opção de segurança avançada) Incluir condições em uma declaração para um acesso mais refinado

Para ter maior controle sobre as identidades que podem acessar seus recursos, é possível incluir condições em uma declaração de política. A política neste tópico oferece um exemplo que usa as seguintes chaves de condição:

  • s3:prefix: uma chave de condição do S3 que restringe o acesso a uma pasta específica em um bucket do S3. Para ter mais informações sobre essa chave de condição, consulte a seção Política de usuário em Exemplo 2: obter uma lista de objetos em um bucket com um prefixo específico.

  • aws:ResourceAccount— Uma chave de condição global que restringe o acesso às solicitações de uma pessoa específicaConta da AWS.

A política a seguir restringe o acesso de leitura à my-folder pasta no bucket do amzn-s3-demo-bucket S3 e restringe o acesso de gravação do bucket do amzn-s3-demo-destination-bucket S3 às solicitações do com o Conta da AWS ID: 111122223333

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ReadS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition" : { "StringEquals" : { "s3:prefix": "my-folder" } } }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket", "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" } } } ] }

Para saber mais sobre as condições e as chaves de condição, consulte os seguintes links: