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
Os exemplos a seguir demonstram como criar políticas de ponto de acesso para controlar solicitações feitas por meio de um ponto 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:
-
(Recomendado) Delegue o controle de acesso do bucket para o ponto de acesso conforme descrito em Delegar controle de acesso a pontos de acesso.
-
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 bucket para limitar operações do S3 por meio de pontos de acesso a origens de rede de VPC
A política de bucket a seguir limita o acesso a todas as operações de objeto do S3 para o bucket
de um ponto de acesso com uma origem de rede de VPC.amzn-s3-demo-bucket
{
"Version": "2012-10-17",
"Statement": [
{
"Principal": "*",
"Action": "s3express:CreateSession",
"Effect": "Deny",
"Resource": "arn:aws:s3express:us-west-2:123456789012:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3",
"Condition": {
"StringNotEquals": {
"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 uso geral, Delegar controle de acesso a pontos de acesso e Conceder permissões para pontos de acesso entre contas.
s3express:DataAccessPointArn
-
As operações do SDK da AWS exigem que você use o ARN para solicitações de objeto. Este exemplo mostra uma string que você pode usar para estabelecer correspondência em um ARN de ponto de acesso. O seguinte exemplo estabelece a correspondência de todos os pontos de acesso da Conta da AWS
111.122.223.333
na regiãous-west-2
:"Condition" : { "StringLike": { "s3express:DataAccessPointArn": "arn:aws:s3express:
us-west-2
: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
ouVPC
. 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
em políticas de bucket e políticas de ponto de acesso. As políticas de ponto de acesso não são compatíveis comSessionMode
. Esses valores são os nomes de permissão de política de grupo (GP) do S3 usados nas políticas do IAM. Eles são associados a operações de API. Os valores válidos são os seguintes:PutObject
GetObject
DeleteObject
ListBucket
GetObjectAttributes
AbortMultipartUpload
ListBucketMultipartUploads
ListMultipartUploadParts
Com relação a políticas de bucket que usam
SesssionMode
, os valores des3express:Permissions
são associados a ações somente leitura e de leitura-gravação como mostrado abaixo:-
Ações
ReadOnly
-
GetObject
-
ListBucket
-
GetObjectAttributes
-
ListBucketMultipartUploads
-
ListMultipartUploadParts
-
-
Ações
ReadWrite
-
PutObject
-
GetObject
-
DeleteObject
-
ListBucket
-
GetObjectAttributes
-
AbortMultipartUpload
-
ListBucketMultipartUploads
-
ListMultipartUploadParts
-
nota
Ao utilizar chaves de condição de vários valores, recomendamos que você use
ForAllValues
com instruçõesAllow
eForAnyValue
com instruçõesDeny
. 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
Você pode delegar o controle de acesso de um bucket aos pontos de acesso do bucket. 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 pelas políticas anexadas aos respectivos pontos 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"
]
}
}
}]
}