AWS Identity and Access Management (IAM) para a classe S3 Express One Zone - Amazon Simple Storage Service

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:

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.

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

s3express:CreateBucket

CreateBucket

Concede permissão para criar um bucket.

Escrever

s3express:authType

s3express:LocationName

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

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 PutObject, GetObject e assim por diante.

Escrever

s3express:authType

s3express:SessionMode

s3express:ResourceAccount

s3express:signatureversion

s3express:signatureAge

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:DeleteBucket DeleteBucket

Concede permissão para excluir o bucket nomeado no URI.

Escrever

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:DeleteBucketPolicy DeleteBucketPolicy

Concede permissão para excluir a política de um bucket especificado.

Gerenciamento de permissões

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:GetBucketPolicy GetBucketPolicy

Concede permissão para retornar a política do bucket especificado.

Leitura

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:ListAllMyDirectoryBuckets ListDirectoryBuckets

Concede permissão para listar todos os buckets de diretório de propriedade do remetente autenticado da solicitação.

Lista

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

s3express:PutBucketPolicy PutBucketPolicy

Concede permissão para adicionar ou substituir uma política de um bucket.

Gerenciamento de permissões

s3express:authType

s3express:ResourceAccount

s3express:signatureversion

s3express:TlsVersion

s3express:x-amz-content-sha256

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 Authorization seja usado na autenticação de solicitação.

Valores válidos: REST-HEADER, REST-QUERY-STRING

String
s3express:LocationName

Filtra o acesso à operação de API CreateBucket pelo ID de uma zona de disponibilidade específica (ID de AZ), como usw2-az1.

Exemplo de valor: usw2-az1

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 aws:ResourceAccount ou s3express:ResourceAccount. Você pode usar essa chave de condição em políticas de identidade do AWS Identity and Access Management (IAM) ou políticas de endpoint de nuvem privada virtual (VPC). Por exemplo, você pode usar essa chave de condição para restringir o acesso dos clientes dentro da VPC aos buckets que não pertencem a você.

Exemplo de valor: 111122223333

String
s3express:SessionMode

Filtra o acesso pela permissão solicitada pela operação de API CreateSession. Por padrão, a sessão é ReadWrite. Você pode usar essa chave de condição para limitar o acesso a ReadOnly ou negar explicitamente o acesso a ReadWrite. Para obter mais informações, consulte Exemplos de políticas de bucket de diretório para a classe S3 Express One Zone e CreateSession na Referência da API do Amazon Simple Storage Service.

Valores válidos: ReadWrite, ReadOnly

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: 600000

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: "AWS4-HMAC-SHA256" (identifica o Signature Version 4)

String
s3express:TlsVersion

Filtra o acesso pela versão do TLS usada pelo cliente.

Você pode usar a chave de condição s3:TlsVersion para gravar políticas do IAM, de endpoint de nuvem privada virtual (VPCE) ou de bucket que restrinjam o acesso de usuários ou aplicações aos buckets de diretório com base na versão do TLS usada pelo cliente. Você também pode usar essa chave de condição para gravar políticas que exigem uma versão mínima do TLS.

Exemplo de valor: 1.3

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 Authorization, adicione o cabeçalho x-amz-content-sha256 no cálculo da assinatura e defina o valor como a carga útil do hash.

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:

  • Negar uploads que usem o cabeçalho Authorization para autenticar solicitações mas não assinem a carga útil. Para obter mais informações, consulte Transferring payload in a single chunk (Transferência de carga útil em um único bloco) na Referência de API do Amazon Simple Storage Service.

  • Negar uploads que usam URLs pré-assinados. Os URLs pré-assinados sempre têm um UNSIGNED_PAYLOAD. Para obter mais informações, consulte Authenticating requests (Autenticação de solicitações) e Authentication methods (Métodos de autenticação) na Referência de API do Amazon Simple Storage Service.

Valor válido: UNSIGNED-PAYLOAD

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