Práticas recomendadas de controle de acesso - Amazon Simple Storage Service

Práticas recomendadas de controle de acesso

O Amazon S3 fornece uma variedade de recursos e ferramentas de segurança. Os cenários a seguir devem servir como um guia para quais ferramentas e configurações você pode querer usar ao executar determinadas tarefas ou operar em ambientes específicos. A aplicação adequada dessas ferramentas pode ajudar a manter a integridade dos dados e ajudar a garantir que os recursos sejam acessíveis aos usuários pretendidos.

Criar um bucket

Ao criar um bucket, é necessário aplicar as seguintes ferramentas e configurações para ajudar a garantir que os recursos do Amazon S3 estejam protegidos. 

Bloqueio de acesso público

O Bloqueio de acesso público do S3 fornece quatro configurações para ajudar a evitar expor inadvertidamente seus recursos do S3. É possível aplicar essas configurações em qualquer combinação a pontos de acesso individuais, buckets ou Contas da AWS inteiras. Caso você aplique uma configuração a uma conta, ela se aplica a todos os buckets e pontos de acesso de propriedade dessa conta. Por padrão, a configuração Block all public access (Bloquear todo o acesso público) é aplicada a novos buckets criados no console do Amazon S3. 

Para obter mais informações, consulte O significado de "público".

Se as configurações do S3 Block Public Access forem muito restritivas, você poderá usar identidades do AWS Identity and Access Management (IAM) para conceder acesso a usuários específicos em vez de desabilitar todas as configurações do Block Public Access. Usar o Bloqueio de acesso público com identidades do IAM ajuda a garantir que qualquer operação bloqueada por uma configuração do Bloqueio de acesso público seja rejeitada, a menos que o usuário solicitante tenha recebido permissão específica.

Para obter mais informações, consulte Configurações do bloqueio de acesso público.

Conceder acesso com identidades do IAM

Ao configurar contas para novos membros da equipe que exigem acesso ao S3, use usuários e funções do IAM para garantir privilégios mínimos. Também é possível implementar uma forma de autenticação multifator (MFA) do IAM para apoiar uma base de identidade sólida. Com as identidades do IAM, é possível conceder permissões exclusivas aos usuários e especificar quais recursos eles podem acessar e quais ações eles podem executar. As identidades do IAM fornecem mais recursos, incluindo a capacidade de exigir que os usuários insiram credenciais de login antes de acessar recursos compartilhados e aplicar hierarquias de permissão a diferentes objetos em um único bucket.

Para obter mais informações, consulte Exemplo 1: Proprietário do bucket que concede permissões do bucket aos usuários .

Políticas de buckets

Com as políticas de bucket, é possível personalizar o acesso ao bucket para ajudar a garantir que somente os usuários aprovados possam acessar recursos e executar ações neles. Além das políticas de bucket, você deve usar as configurações do Bloqueio de acesso público no nível do bucket para limitar ainda mais o acesso público aos dados.

Para obter mais informações, consulte Uso de políticas de bucket.

Ao criar políticas, evite o uso de curingas no elemento Principal porque ele permite efetivamente que qualquer pessoa acesse os recursos do Amazon S3. É melhor listar explicitamente usuários ou grupos que têm permissão para acessar o bucket. Em vez de incluir um curinga para as ações, conceda permissões específicas quando aplicável.

Para manter ainda mais a prática de privilégios mínimos, as instruções Deny (Negar) no elemento Effect devem ser tão amplas quanto possível e as instruções Allow (Permitir) devem ser tão restritas quanto possível. Negar efeitos emparelhados com a ação “s3:*” é outra boa maneira de implementar as melhores práticas de adesão para os usuários incluídos em instrução de condição de política.

Para obter mais informações sobre como especificar condições para quando uma política estiver em vigor, consulte Exemplos de chave de condição do Amazon S3.

Buckets em uma configuração de VPC

Ao adicionar usuários em uma configuração corporativa, você poderá usar um endpoint de Virtual Private Cloud (VPC) para permitir que todos os usuários na rede virtual acessem os recursos do Amazon S3. Os VPC endpoints permitem que os desenvolvedores concedam acesso e permissões específicos a grupos de usuários com base na rede à qual o usuário está conectado. Em vez de adicionar cada usuário a uma função ou a um grupo do IAM, você poderá usar VPC endpoints para negar acesso ao bucket se a solicitação não for originada do endpoint especificado.

Para obter mais informações, consulte Controlar o acesso a partir de VPC endpoints com políticas de bucket.

Armazenar e compartilhar dados

Use as seguintes ferramentas e melhores práticas para armazenar e compartilhar os dados do Amazon S3.

Versionamento e bloqueio de objetos para integridade de dados

Se você usar o console do Amazon S3 para gerenciar buckets e objetos, você deve implementar o versionamento do S3 e o bloqueio de objeto do S3. Esses recursos ajudam a evitar alterações acidentais em dados críticos e permitem reverter ações não intencionais. Esse recurso é particularmente útil quando há vários usuários com permissões completas de gravação e execução acessando o console do Amazon S3.

Para obter informações sobre o Versionamento do S3, consulte Usando o versionamento em buckets do S3. Para obter mais informações sobre Bloqueio de objetos, consulte Usar o bloqueio de objetos do S3.

Gerenciamento do ciclo de vida do objeto para eficiência de custos

Para gerenciar os objetos para que eles sejam armazenados de forma econômica durante todo o ciclo de vida, você pode emparelhar políticas de ciclo de vida com o versionamento de objetos. As políticas de ciclo de vida definem as ações que você deseja que o S3 execute durante a vida útil de um objeto. Por exemplo, é possível criar uma política de ciclo de vida que fará a transição de objetos para outra classe de armazenamento, arquivá-los ou excluí-los após um período especificado. É possível definir uma política de ciclo de vida para todos os objetos ou para um subconjunto de objetos no bucket usando um prefixo ou uma tag compartilhados.

Para obter mais informações, consulte Gerenciando seu ciclo de vida de armazenamento.

Replicação entre regiões para vários locais de escritório

Ao criar buckets que são acessados por diferentes locais de escritório, você deve considerar a implementação da replicação entre regiões do S3. A replicação entre regiões ajuda a garantir que todos os usuários tenham acesso aos recursos de que precisam e aumenta a eficiência operacional. A replicação entre regiões oferece maior disponibilidade mediante a cópia de objetos entre buckets do S3 em diferentes Regiões da AWS. No entanto, o uso dessa ferramenta aumenta os custos de armazenamento.

Para obter mais informações, consulte Replicação de objetos.

Permissões para hospedagem segura de sites estáticos

Ao configurar um bucket para ser usado como um site estático acessado publicamente, é necessário desabilitar todas as configurações do Bloqueio de acesso público. É importante fornecer apenas ações s3:GetObject e não permissões ListObject ou PutObject ao escrever a política de bucket para o site estático. Isso ajuda a garantir que os usuários não possam visualizar todos os objetos no bucket nem adicionar seu próprio conteúdo.

Para obter mais informações, consulte Configuração de permissões para acesso ao site.

O Amazon CloudFront fornece os recursos necessários para configurar um site estático seguro. Os sites estáticos do Amazon S3 só oferecem suporte a endpoints HTTP. O CloudFront usa o armazenamento durável do Amazon S3 ao mesmo tempo que fornece cabeçalhos de segurança adicionais, como HTTPS. HTTPS adiciona segurança criptografando uma solicitação HTTP normal e protegendo contra ataques cibernéticos comuns.

Para obter mais informações, consulte Conceitos básicos de um site estático seguro no Guia do desenvolvedor do Amazon CloudFront.

Compartilhar recursos

Existem várias maneiras diferentes de compartilhar recursos com um grupo específico de usuários. É possível usar as ferramentas a seguir para compartilhar um conjunto de documentos ou outros recursos com um único grupo de usuários, departamento ou escritório. Embora todos possam ser usados para atingir o mesmo objetivo, algumas ferramentas podem emparelhar melhor do que outras com as configurações existentes.

Políticas de usuário

É possível compartilhar recursos com um grupo limitado de pessoas usando políticas de grupos e de usuários do IAM. Ao criar um usuário do IAM, você será solicitado a criá-lo e adicioná-lo a um grupo. No entanto, é possível criar e adicionar usuários a grupos a qualquer momento. Se os indivíduos com os quais você pretende compartilhar esses recursos já estiverem configurados no IAM, será possível adicioná-los a um grupo comum e compartilhar o bucket com o grupo dentro da política de usuário. Também é possível usar políticas de usuário do IAM para compartilhar objetos individuais em um bucket.

Para obter mais informações, consulte Permitir que um usuário do IAM acesse um dos seus buckets.

Listas de controle de acesso

Como regra geral, recomendamos que você use políticas de bucket do S3 ou políticas do IAM para controle de acesso. As listas de controle de acesso (ACLs) do Amazon S3 são um mecanismo de controle de acesso herdado que precede o IAM. Se você já usa ACLs do S3 e as considera suficientes, não há necessidade de alterar. No entanto, determinados cenários de controle de acesso exigem o uso de ACLs. Por exemplo, quando um proprietário de bucket deseja conceder permissão a objetos, mas nem todos os objetos são de propriedade dele, o proprietário do objeto deve primeiro conceder permissão ao proprietário do bucket. Isso é feito usando uma ACL de objeto.

Para obter mais informações, consulte Exemplo 3: O proprietário do bucket concede permissões para objetos que não possui.

Prefixes

Ao tentar compartilhar recursos específicos de um bucket, é possível replicar permissões no nível de pastas usando prefixos. O console do Amazon S3 oferece suporte ao conceito de pastas como meio de agrupar objetos utilizando um prefixo de nome compartilhado para os objetos. Você pode então especificar um prefixo de acordo com as condições da política de um usuário do IAM para conceder a ele permissão explícita para acessar os recursos associados a esse prefixo. 

Para obter mais informações, consulte Organizar objetos no console do Amazon S3 usando pastas.

Tagging

Se usar a marcação de objetos para categorizar o armazenamento, você poderá compartilhar objetos marcados com um valor específico com usuários especificados. A marcação de recursos permite controlar o acesso a objetos com base nas tags associadas ao recurso que um usuário está tentando acessar. Para fazer isso, use a condição ResourceTag/key-name dentro de uma política de usuário do IAM para permitir o acesso aos recursos marcados.

Para obter mais informações, consulte Controle do acesso aos recursos da AWS usando tags de recursos no Manual do usuário do IAM.

Proteger dados

Use as seguintes ferramentas para ajudar a proteger os dados em trânsito e em repouso, ambas as quais são cruciais para manter a integridade e a acessibilidade dos dados.

Object encryption

O Amazon S3 oferece várias opções de criptografia de objetos que protegem os dados em trânsito e em repouso. A criptografia no lado do servidor criptografa o objeto antes de salvá-lo em discos em seus datacenters e os descriptografa ao fazer download dos objetos. Contanto que você autentique sua solicitação e tenha permissões de acesso, não há diferença na forma de acesso aos objetos criptografados ou não criptografados. Ao configurar a criptografia no lado do servidor, você tem três opções mutuamente exclusivas:

  • Chaves gerenciadas pelo Amazon S3 (SSE-S3)

  • Chaves do KMS armazenadas no AWS Key Management Service (SSE-KMS)

  • Chaves fornecidas pelo cliente (SSE-C)

Para obter mais informações, consulte Proteção de dados usando criptografia no lado do servidor.

Criptografia no lado do cliente é o ato de criptografar os dados antes de enviá-los para o Amazon S3. Para obter mais informações, consulte Proteger dados usando a criptografia no lado do cliente.

Métodos de assinatura

O Signature versão 4 é o processo para adicionar informações de autenticação às solicitações da AWS enviadas por HTTP. Por segurança, a maioria das solicitações para AWS deve ser assinada com uma chave de acesso, que consiste em um ID de chave de acesso e na chave de acesso secreta. Essas duas chaves são comumente conhecidas como suas credenciais de segurança.

Para obter mais informações, consulte Autenticação de solicitações (AWS Signature Version 4) e Processo de assinatura do Signature Version 4.

Registro em log e monitoramento

O monitoramento é uma parte importante da manutenção da confiabilidade, da disponibilidade e da performance das soluções do Amazon S3 para que você possa depurar mais facilmente uma falha de vários pontos, caso isso ocorra. O registro em log pode fornecer insights sobre quaisquer erros que os usuários estejam recebendo e quando e quais solicitações são feitas. A AWS fornece várias ferramentas para monitorar seus recursos do Amazon S3:

  • Amazon CloudWatch

  • AWS CloudTrail

  • Logs de acesso do Amazon S3

  • AWS Trusted Advisor

Para obter mais informações, consulte Registrar em log e monitorar no Amazon S3.

O Amazon S3 é integrado ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas por um usuário, por uma função ou por um serviço da AWS no Amazon S3. Esse recurso pode ser emparelhado com o Amazon GuardDuty, que monitora ameaças contra seus recursos do Amazon S3 analisando eventos de gerenciamento do CloudTrail e eventos de dados do CloudTrail S3. Essas fontes de dados monitoram diferentes tipos de atividade. Por exemplo, os eventos de gerenciamento do CloudTrail relacionados ao S3 incluem operações que listam ou configuram projetos do S3. O GuardDuty analisa eventos de dados do S3 de todos os buckets do S3 e os monitora em busca de atividades maliciosas e suspeitas.

Para obter mais informações, consulte Proteção do Amazon S3 no Amazon GuardDuty no Manual do usuário do Amazon GuardDuty.