Configurar políticas do IAM para usar pontos de acesso para buckets de diretório - Amazon Simple Storage Service

Configurar políticas do IAM para usar pontos de acesso para buckets de diretório

Os pontos de acesso comportam políticas de recursos do AWS Identity and Access Management (IAM) que permitem controlar o uso do ponto de acesso por recurso, usuário ou outras condições. Para que uma aplicação ou usuário acesse objetos por meio de um ponto de acesso, tanto o ponto de acesso quanto o a política do bucket subjacente devem permitir a solicitação.

Importante

Adicionar um ponto de acesso a um bucket não altera o comportamento do bucket quando ele é acessado diretamente pelo nome do bucket. Todas as operações existentes no bucket continuarão a funcionar como antes. As restrições que você incluir em uma política de ponto de acesso ou em um escopo de ponto de acesso se aplicam somente a solicitações feitas por meio desse ponto de acesso.

Ao usar políticas de recursos do IAM, solucione avisos de segurança, erros, avisos gerais e sugestões do AWS Identity and Access Management Access Analyzer antes de salvar a política. O IAM Access Analyzer executa verificações de política para validar sua política em relação à gramática das políticas e às práticas recomendadas do IAM. Essas verificações geram descobertas e fornecem recomendações que ajudam a criar políticas que sejam funcionais e estejam em conformidade com as práticas recomendadas de segurança.

Para saber mais sobre a validação de políticas usando o IAM Access Analyzer, consulte Validação de políticas do IAM Access Analyzer no Guia do usuário do IAM. Para visualizar uma lista de avisos, erros e sugestões retornados pelo IAM Access Analyzer, consulte Referência de verificação de políticas do IAM Access Analyzer.

Exemplos de política de ponto de acesso para buckets de diretório

As políticas de ponto de acesso a seguir demonstram como controlar as solicitações um bucket de diretório. As políticas de ponto de acesso exigem ARNs de bucket ou ARNs de ponto de acesso. Não é possível usar aliases de ponto de acesso nas políticas. Abaixo é apresentado um exemplo de ARN de ponto de acesso:

arn:aws:s3express:region:account-id:accesspoint/myaccesspoint--zoneID--xa-s3

Você pode visualizar o ARN do ponto de acesso nos detalhes do ponto de acesso. Para obter mais informações, consulte Visualizar detalhes dos pontos de acesso para buckets de diretório.

nota

As permissões concedidas em uma política de ponto de acesso entram em vigor somente se o bucket subjacente também permitir o mesmo acesso. É possível fazer isso de duas maneiras:

  1. (Recomendado) Delegue o controle de acesso do bucket para o ponto de acesso conforme descrito em Delegar controle de acesso a pontos de acesso.

  2. Adicione as mesmas permissões contidas na política de ponto de acesso à política do bucket subjacente.

exemplo 1: política de controle de serviços para limitar os pontos de acesso a origens de rede de VPC

A política de controle de serviços a seguir requer que todos os novos pontos de acesso sejam criados com uma origem de rede de nuvem privada virtual (VPC). Com essa política em vigor, os usuários da sua organização não podem criar nenhum ponto de acesso acessível pela internet.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3express:CreateAccessPoint", "Resource": "*", "Condition": { "StringNotEquals": { "s3express:AccessPointNetworkOrigin": "VPC" } } } ] }
exemplo 2: política de ponto de acesso para limitar o acesso ao bucket por pontos de acesso com uma origem de rede da VPC

A política de ponto de acesso a seguir limita todo o acesso ao bucket amzn-s3-demo-bucket--zoneID--x-s3 por um ponto de acesso com uma origem de rede da VPC.

{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Action": "s3express:CreateSession", "Effect": "Deny", "Resource": "arn:aws:s3express:region:111122223333:bucket/amzn-s3-demo-bucket--zoneID--x-s3", "Condition": { "StringNotEqualsIfExists": { "s3express:AccessPointNetworkOrigin": "VPC" } } } ] }

Chaves de condição

Os pontos de acesso para buckets de diretório têm chaves de condição que podem ser usadas em políticas do IAM para controlar o acesso aos recursos. As chaves de condição a seguir representam somente parte de uma política do IAM. Para obter exemplos de políticas completas, consulte Exemplos de política de ponto de acesso para buckets de diretório, Delegar controle de acesso a pontos de acesso e Conceder permissões para pontos de acesso entre contas.

s3express:DataAccessPointArn

Este exemplo mostra como filtrar o acesso pelo nome do recurso da Amazon (ARN) de um ponto de acesso e faz a correspondência com todos os pontos de acesso referentes à Conta da AWS 111122223333 na região region:

"Condition" : { "StringLike": { "s3express:DataAccessPointArn": "arn:aws:s3express:region:111122223333:accesspoint/*" } }
s3express:DataAccessPointAccount

Este exemplo mostra um operador de string que você pode utilizar para estabelecer correspondência com o ID da conta do proprietário de um ponto de acesso. O exemplo a seguir estabelece correspondência com todos os pontos de acesso pertencentes à Conta da AWS 111122223333.

"Condition" : { "StringEquals": { "s3express:DataAccessPointAccount": "111122223333" } }
s3express:AccessPointNetworkOrigin

Este exemplo mostra um operador de string que você pode utilizar para estabelecer correspondência com a origem da rede, Internet ou VPC. O exemplo a seguir corresponde apenas a pontos de acesso com uma origem de VPC.

"Condition" : { "StringEquals": { "s3express:AccessPointNetworkOrigin": "VPC" } }
s3express:Permissions

Você pode usar s3express:Permissions para restringir o acesso a operações de API no escopo do ponto de acesso. As seguintes operações de API são compatíveis:

  • PutObject

  • GetObject

  • DeleteObject

  • ListBucket (obrigatório para ListObjectsV2)

  • GetObjectAttributes

  • AbortMultipartUpload

  • ListBucketMultipartUploads

  • ListMultipartUploadParts

nota

Ao utilizar chaves de condição de vários valores, recomendamos que você use ForAllValues com instruções Allow e ForAnyValue com instruções Deny. Para obter mais informações, consulte Chaves de contexto de múltiplos valores no “Guia do usuário do IAM”.

Consulte mais informações sobre como usar chaves de condição com o Amazon S3 em Actions, resources, and condition keys for Amazon S3 na Referência de autorização do serviço.

Para ter mais informações sobre as permissões para operações de API do S3 de acordo com os tipos de recurso do S3, consulte Permissões obrigatórias para operações de API do Amazon S3.

Delegar controle de acesso a pontos de acesso

É possível delegar o controle de acesso da política de bucket à política de ponto de acesso. O exemplo de política de bucket a seguir permite acesso total a todos os pontos de acesso pertencentes à conta do proprietário do bucket. Após a aplicação da política, todo acesso a esse bucket é controlado por políticas de ponto de acesso. Recomendamos configurar seus buckets dessa maneira para todos os casos de uso que não exigem acesso direto ao bucket.

exemplo política de bucket que delega controle de acesso a pontos de acesso
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Condition": { "StringEquals" : { "s3express:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }

Conceder permissões para pontos de acesso entre contas

Para criar um ponto de acesso para um bucket pertencente a outra conta, primeiro você deve criar o ponto de acesso especificando o nome do bucket e o ID do proprietário da conta. Depois, o proprietário do bucket deve atualizar a política do bucket para autorizar solicitações do ponto de acesso. Criar um ponto de acesso é semelhante à criação de um DNS CNAME, pois o ponto de acesso não fornece acesso ao conteúdo do bucket. Todo acesso ao bucket é controlado pela política de bucket. O exemplo de política de bucket a seguir permite solicitações GET e LIST no bucket de um ponto de acesso pertencente a uma Conta da AWS confiável.

Substitua Bucket ARN pelo ARN do bucket.

exemplo de política de bucket que delega permissões a outra Conta da AWS
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "s3express:CreateSession", "Resource" : [ "Bucket ARN" ], "Condition": { "StringEquals" : { "s3express:DataAccessPointAccount": "Access point owner's account ID" }, "ForAllValues:StringEquals": { "s3express:Permissions": [ "GetObject", "ListBucket" ] } } }] }