Como o Amazon S3 autoriza uma solicitação - Amazon Simple Storage Service

Como o Amazon S3 autoriza uma solicitação

Quando o Amazon S3 recebe uma solicitação — por exemplo, uma operação de bucket ou de objeto — ele primeiro verifica se o solicitante tem as permissões necessárias. O Amazon S3 avalia todas as políticas de acesso relevantes, as políticas de usuário e as políticas baseadas em recursos (política de bucket, ACL de bucket, ACL de objeto) para decidir se autoriza a solicitação.

Para determinar se o solicitante tem permissão para executar a operação específica, o Amazon S3 faz o seguinte, na ordem, quando recebe uma solicitação:

  1. Converte todas as políticas de acesso relevantes (política de usuário, política de bucket, ACLs) em tempo de execução em um conjunto de políticas para avaliação.

  2. Avalia o conjunto de políticas resultante nas seguintes etapas. Em cada etapa, o Amazon S3 avalia um subconjunto de políticas em um contexto específico, com base na autoridade contextual.

    1. Contexto de usuário: no contexto de usuário, a conta pai à qual o usuário pertence é a autoridade contextual.

      O Amazon S3 avalia um subconjunto de políticas de propriedade da conta pai. Esse subconjunto inclui a política de usuário que o pai anexa ao usuário. Se o pai também possuir o recurso na solicitação (bucket, objeto), o Amazon S3 também avaliará as políticas de recursos correspondentes (política de bucket, ACL de bucket e ACL de objeto) ao mesmo tempo.

      Um usuário deve ter permissão da conta pai para executar uma operação.

      Essa etapa será aplicável somente se a solicitação for feita por um usuário em uma Conta da AWS. Se a solicitação for feita usando credenciais raiz de uma Conta da AWS, o Amazon S3 ignorará essa etapa.

    2. Contexto de bucket: no contexto de bucket, o Amazon S3 avalia as políticas de propriedade da Conta da AWS que possui o bucket.

      Se a solicitação for para uma operação de bucket, o solicitante deverá ter permissão do proprietário do bucket. Se a solicitação for para um objeto, o Amazon S3 avaliará todas as políticas de propriedade do proprietário do bucket para verificar se o proprietário do bucket não negou explicitamente o acesso ao objeto. Se houver uma negação explícita definida, o Amazon S3 não autorizará a solicitação.

    3. Contexto de objeto: se a solicitação for para um objeto, o Amazon S3 avaliará o subconjunto de políticas de propriedade do proprietário do objeto.

Veja a seguir alguns exemplos de cenários que ilustram como o Amazon S3 autoriza uma solicitação.

exemplo O solicitante é uma entidade principal do IAM

Se o solicitante for uma entidade principal do IAM, o Amazon S3 deverá determinar se a Conta da AWS pai à qual a entidade principal pertence concedeu a permissão necessária para ele executar a operação. Além disso, se a solicitação for para uma operação de bucket, como uma solicitação para listar o conteúdo do bucket, o Amazon S3 deverá verificar se o proprietário do bucket concedeu permissão para o solicitante executar a operação. Para executar uma operação específica em um recurso, uma entidade principal do IAM precisa de permissão da Conta da AWS pai à qual ele pertence e da Conta da AWS que é proprietária do recurso.

exemplo O solicitante é uma entidade principal do IAM: se a solicitação for para uma operação em um objeto que não pertence ao proprietário do bucket.

Se a solicitação for para uma operação em um objeto que o proprietário do bucket não possui, além de verificar se o solicitante tem permissões do proprietário do objeto, o Amazon S3 também deverá verificar a política do bucket para garantir que o proprietário do bucket não definiu negação explícita no objeto. Um proprietário de bucket (que paga a fatura) pode negar explicitamente o acesso aos objetos do bucket independentemente de quem os possui. O proprietário do bucket também pode excluir qualquer objeto do bucket

Por padrão, quando outra Conta da AWS carrega um objeto no bucket do S3, essa conta (que gravou o objeto) é a proprietária do objeto, tem acesso a ele e pode conceder acesso a outros usuários por meio de ACLs. É possível usar Object Ownership para alterar esse comportamento padrão para que as ACLs sejam desabilitadas e você, como proprietário do bucket, automaticamente seja proprietário de todos os objetos de seu bucket. Como resultado, o controle de acesso para seus dados é baseado em políticas, como políticas do IAM, políticas de bucket do S3, políticas de endpoint da Virtual Private Cloud (VPC) e políticas de controle de serviço (SCPs) do AWS Organizations. Para obter mais informações, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.

Para obter mais informações sobre como o Amazon S3 avalia as políticas de acesso para autorizar ou negar solicitações para operações de bucket e operações de objeto, consulte os seguintes tópicos: