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, lista de controle de acesso (ACL) de bucket e ACL de objeto) para decidir se autoriza a solicitação.
nota
Se a verificação de permissão do Amazon S3 não conseguir encontrar permissões válidas, será retornado um erro de permissão negada “Acesso negado” (403 Proibido). Consulte mais informações em Solucionar erros de acesso negado (403 proibido) no Amazon S3.
Para determinar se o solicitante tem permissão para executar a operação específica, o Amazon S3 faz o seguinte, na ordem que se apresenta, quando recebe uma solicitação:
-
Converte todas as políticas de acesso relevantes (política de usuário, política de bucket e ACLs) no tempo de execução em um conjunto de políticas para avaliação.
-
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.
-
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 a conta principal também possuir o recurso na solicitação (bucket ou 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 as credenciais do usuário raiz de uma Conta da AWS, o Amazon S3 ignorará essa etapa.
-
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.
-
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 ou 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 uma 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 listas de controle de acesso (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 de usuários do IAM, políticas de bucket do S3, políticas de endpoint da nuvem privada virtual (VPC) e políticas de controle de serviço (SCPs) do AWS Organizations. Para ter 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: