AWS Identity and Access Management (IAM) para a classe S3 Express One Zone
O AWS Identity and Access Management (IAM) é um AWS service (Serviço da AWS) que ajuda os administradores a controlar o acesso aos recursos da AWS de forma segura. Os administradores do IAM controlam quem pode se autenticar (se conectar) e ter autorização (permissões) para utilizar os recursos do Amazon S3 na classe S3 Express One Zone. Você pode usar o IAM sem custo adicional.
Por padrão, os usuários não têm permissões para os buckets de diretório e as operações da classe S3 Express One Zone. Para conceder permissões de acesso a buckets de diretório, você pode usar o IAM para criar usuários ou perfis e anexar permissões a essas identidades. Para obter mais informações sobre o IAM, consulte Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.
Para fornecer acesso, você pode adicionar permissões aos usuários, grupos ou perfis das seguintes formas:
-
Usuários e grupos no AWS IAM Identity Center: crie um conjunto de permissões. Siga as instruções em Criação de um conjunto de permissões no Guia do usuário do AWS IAM Identity Center.
-
Usuários gerenciados no IAM por meio de um provedor de identidades: crie um perfil para federação de identidades. Siga as instruções em Criar um perfil para um provedor de identidades de terceiros (federação) no Guia do usuário do IAM.
-
Perfis e usuários do IAM: crie um perfil que o usuário possa assumir. Siga as instruções em Criação de uma função para delegar permissões a um usuário do IAM no Guia do usuário do IAM.
Por padrão, os buckets de diretório são privados e só podem ser acessados por usuários que tenham recebido acesso explícito. O limite de controle de acesso para buckets de diretório é definido somente no nível do bucket. Por outro lado, o limite de controle de acesso para buckets de uso geral pode ser definido no nível do bucket, do prefixo ou da etiqueta de objeto. Essa diferença significa que os buckets de diretório são o único recurso que você pode incluir nas políticas de bucket ou nas políticas de identidade do IAM para acesso à classe S3 Express One Zone.
Com a classe S3 Express One Zone, além da autorização do IAM, você pode autenticar e autorizar solicitações por meio de um mecanismo com base em nova sessão que é processado pela operação da API CreateSession
. Você pode usar CreateSession
para solicitar credenciais temporárias que forneçam acesso de baixa latência ao bucket. Essas credenciais temporárias têm como escopo um bucket de diretório específico.
Para trabalhar com CreateSession
, recomendamos usar a versão mais recente dos AWS SDKs ou usar a AWS Command Line Interface (AWS CLI). Os AWS SDKs compatíveis e a AWS CLI lidam com o estabelecimento, a atualização e o encerramento de sessões em seu nome.
Use tokens de sessão somente com operações zonais (nível de objeto) (exceto para CopyObject
e HeadBucket
) para distribuir a latência associada à autorização em várias solicitações em uma sessão. Para as operações de API do endpoint regional (operações em nível de bucket), use a autorização do IAM, que não envolve o gerenciamento de uma sessão. Para obter mais informações, consulte AWS Identity and Access Management (IAM) para a classe S3 Express One Zone e CreateSession authorization.
Para obter mais informações sobre o IAM para a classe S3 Express One Zone, consulte os tópicos a seguir.
Tópicos
Entidades principais
Ao criar uma política baseada em recurso para conceder acesso aos buckets, você deve usar o elemento Principal
para especificar a pessoa ou a aplicação que pode fazer uma solicitação de uma ação ou operação no respectivo recurso. Para políticas de bucket de diretório, você pode usar as seguintes entidades principais:
-
Uma conta da AWS
-
Um usuário do IAM
-
Um perfil do IAM
-
Um usuário federado
Para obter mais informações, consultePrincipal no Guia do usuário do IAM.
Recursos
Os nomes de recurso da Amazon (ARNs) para buckets de diretório contêm o namespace s3express
, a Região da AWS, o ID da conta da AWS e o nome do bucket de diretório, que inclui o ID da zona de disponibilidade. Para acessar e executar ações no bucket de diretório, você deve usar o seguinte formato de ARN:
arn:aws:s3express:
region
:account-id
:bucket/base-bucket-name
--azid
--x-s3
Para obter mais informações sobre os ARNs, consulte Amazon Resource Names (ARNs) no Guia do usuário do IAM. Para obter mais informações sobre os recursos, consulte Elementos de política JSON do IAM: Resource no Guia do usuário do IAM.
Ações para a classe S3 Express One Zone
Em uma política baseada em identidade ou recurso do IAM, defina quais ações do S3 serão permitidas ou negadas. As ações da classe S3 Express One Zone correspondem a operações específicas da API. A classe S3 Express One Zone tem um namespace do IAM exclusivo que é distinto do namespace padrão do Amazon S3. Esse namespace é o s3express
.
Quando você concede a permissão s3express:CreateSession
, isso permite que a operação de API CreateSession
recupere tokens de sessão ao acessar operações de API de endpoint zonal (ou de nível de objeto). Esses tokens de sessão retornam credenciais que são usadas para conceder acesso a todas as outras operações de API de endpoint zonal. Como resultado, você não precisa conceder permissões de acesso às operações de API zonais usando políticas do IAM. Em vez disso, o token de sessão permite o acesso.
Para obter mais informações sobre as operações de API de endpoints zonais e regionais, consulte Redes para a classe S3 Express One Zone. Para saber mais sobre a operação de API CreateSession
, consulte a CreateSession na Referência da API do Amazon Simple Storage Service.
Você pode especificar as seguintes ações no elemento Action
de uma declaração de política do IAM. Use políticas para conceder permissões para executar uma operação na AWS. Ao usar uma ação em uma política, você geralmente permite ou nega acesso à operação de API com o mesmo nome. No entanto, em alguns casos, uma única ação controla o acesso a mais de uma operação de API. O acesso às ações no nível do bucket só pode ser concedido em políticas baseadas em identidade do IAM (usuário ou perfil), não em políticas de bucket.
Ações e chaves de condição da classe S3 Express One Zone | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ação | API | Descrição | Nível de acesso | Chaves de condição | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CreateBucket |
Concede permissão para criar um bucket. |
Escrever |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:CreateSession |
CreateSession |
Concede permissão para criar um token de sessão, que é usado para conceder acesso a todas as operações de API zonais (nível de objeto), como |
Escrever |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:DeleteBucket |
DeleteBucket |
Concede permissão para excluir o bucket nomeado no URI. |
Escrever |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:DeleteBucketPolicy |
DeleteBucketPolicy |
Concede permissão para excluir a política de um bucket especificado. |
Gerenciamento de permissões |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:GetBucketPolicy |
GetBucketPolicy |
Concede permissão para retornar a política do bucket especificado. |
Leitura |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:ListAllMyDirectoryBuckets |
ListDirectoryBuckets |
Concede permissão para listar todos os buckets de diretório de propriedade do remetente autenticado da solicitação. |
Lista |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
s3express:PutBucketPolicy |
PutBucketPolicy |
Concede permissão para adicionar ou substituir uma política de um bucket. |
Gerenciamento de permissões |
|
Chaves de condição da classe S3 Express One Zone
A classe S3 Express One Zone define as chaves de condição a seguir que podem ser usadas no elemento Condition
de uma política do IAM. É possível usar essas chaves para refinar ainda mais as condições sob as quais a declaração de política se aplica.
Chave de condição | Descrição | Tipo |
---|---|---|
s3express:authType |
Filtra o acesso por método de autenticação. Você pode usar essa chave de condição opcional para restringir as solicitações recebidas a usar um método específico de autenticação. Por exemplo, é possível usar essa chave de condição para permitir que somente o cabeçalho HTTP Valores válidos: |
String |
s3express:LocationName |
Filtra o acesso à operação de API Exemplo de valor: |
String |
s3express:ResourceAccount |
Filtra o acesso pelo ID da Conta da AWS do proprietário do recurso. Para restringir o acesso de usuários, perfis ou aplicações aos buckets de diretório pertencentes ao ID de uma Conta da AWS específica, é possível usar a chave de condição Exemplo de valor: |
String |
s3express:SessionMode |
Filtra o acesso pela permissão solicitada pela operação de API Valores válidos: |
String |
s3express:signatureAge |
Filtra o acesso pela idade em milissegundos da assinatura da solicitação. Essa condição funciona somente para URLs pré-assinados. No AWS Signature Version 4, a chave de assinatura é válida por até 7 dias. Portanto, as assinaturas também são válidas por até 7 dias. Para obter mais informações, consulte Introduction to signing requests (Introdução à assinatura de solicitações) na Referência de API do Amazon Simple Storage Service. Você pode usar essa condição para limitar ainda mais a idade da assinatura. Exemplo de valor: |
Numérico |
s3express:signatureversion |
Identifica a versão do AWS Signature à qual você deseja oferecer suporte para solicitações autenticadas. Para solicitações autenticadas, a classe S3 Express One Zone oferece suporte ao Signature Version 4. Valor válido: |
String |
s3express:TlsVersion |
Filtra o acesso pela versão do TLS usada pelo cliente. Você pode usar a chave de condição Exemplo de valor: |
Numérico |
s3express:x-amz-content-sha256 |
Filtra o acesso por conteúdo não assinado no bucket. É possível usar essa chave de condição para proibir conteúdo não assinado em seu bucket. Ao usar o Signature Version 4 para solicitações que usem o cabeçalho Você pode usar essa chave de condição na política de bucket para negar todo upload cujas cargas úteis não estejam assinadas. Por exemplo:
Valor válido: |
String |
Como as operações de API são autorizadas e autenticadas
A tabela a seguir lista as informações de autorização e autenticação para as operações de API da classe S3 Express One Zone. Para cada operação de API, a tabela mostra o nome da operação de API, a ação do IAM, o tipo de endpoint (regional ou zonal) e o mecanismo de autorização (IAM ou baseada em sessão). Essa tabela também indica onde o acesso entre contas é compatível. O acesso às ações no nível do bucket só pode ser concedido em políticas baseadas em identidade do IAM (usuário ou perfil), não em políticas de bucket.
API | Tipo de endpoint | Ação do IAM | Acesso entre contas |
---|---|---|---|
CreateBucket |
Regional | s3express:CreateBucket |
Não |
DeleteBucket |
Regional | s3express:DeleteBucket |
Não |
ListDirectoryBuckets |
Regional | s3express:ListAllMyDirectoryBuckets |
Não |
PutBucketPolicy |
Regional | s3express:PutBucketPolicy |
Não |
GetBucketPolicy |
Regional | s3express:GetBucketPolicy |
Não |
DeleteBucketPolicy |
Regional | s3express:DeleteBucketPolicy |
Não |
CreateSession |
Zonal | s3express:CreateSession |
Sim |
CopyObject |
Zonal | s3express:CreateSession |
Sim |
DeleteObject |
Zonal | s3express:CreateSession |
Sim |
DeleteObjects |
Zonal | s3express:CreateSession |
Sim |
HeadObject |
Zonal | s3express:CreateSession |
Sim |
PutObject |
Zonal | s3express:CreateSession |
Sim |
GetObjectAttributes |
Zonal | s3express:CreateSession |
Sim |
ListObjectsV2 |
Zonal | s3express:CreateSession |
Sim |
HeadBucket |
Zonal | s3express:CreateSession |
Sim |
CreateMultipartUpload |
Zonal | s3express:CreateSession |
Sim |
UploadPart |
Zonal | s3express:CreateSession |
Sim |
UploadPartCopy |
Zonal | s3express:CreateSession |
Sim |
CompleteMultipartUpload |
Zonal | s3express:CreateSession |
Sim |
AbortMultipartUpload |
Zonal | s3express:CreateSession |
Sim |
ListParts |
Zonal | s3express:CreateSession |
Sim |
ListMultipartUploads |
Zonal | s3express:CreateSession |
Sim |