Autorizar APIs de endpoints regionais com o IAM - Amazon Simple Storage Service

Autorizar APIs de endpoints regionais com o IAM

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:

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. Consulte a lista de operações e permissões da API de endpoint zonal em Authenticating and authorizing requests.

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 tabela a seguir mostra 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:x-amz-server-side-encryption

s3express:x-amz-server-side-encryption-aws-kms-key-id

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:GetEncryptionConfiguration GetBucketEncryption

Concede permissão para exibir a configuração de criptografia padrão de um bucket de diretório.

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.

Listar

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

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

s3express:PutEncryptionConfiguration PutBucketEncryption ou DeleteBucketEncryption

Concede permissão para definir a configuração de criptografia para um bucket de diretório

Escrever

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
s3express:x-amz-server-side-encryption

Filtra o acesso pela criptografia do lado do servidor

Valores válidos: "AWS256", aws:kms

String
s3express:x-amz-server-side-encryption-aws-kms-key-id

Filtra o acesso pela chave do AWS KMS gerenciada pelo cliente para criptografia do lado do servidor

Exemplo de valor: "arn:aws:kms:region:acct-id:key/key-id"

ARN