Como o Amazon S3 autoriza uma solicitação para uma operação de objeto
Ao receber uma solicitação para uma operação de objeto, o Amazon S3 converterá todas as permissões relevantes, permissões baseadas em recursos (lista de controle de acesso [ACL] de objeto, política de bucket, ACL do bucket) e políticas de usuário do IAM, se a solicitação for de um usuário, em um conjunto de políticas a serem avaliadas no tempo de execução. Em seguida, ele avalia o conjunto de políticas resultante em uma série de etapas. Em cada etapa, ele avalia um subconjunto de políticas em três contextos específicos (contexto do usuário, do bucket e do objeto):
-
Contexto do usuário: se o solicitante for um principal do IAM, o principal deverá ter permissão da Conta da AWS pai à qual ele pertence. Nesta etapa, o Amazon S3 avalia um subconjunto de políticas de propriedade da conta pai (também conhecida como a autoridade de contexto). Esse subconjunto de políticas inclui a política de usuário que a pai anexa ao principal. Se a conta principal também possuir o recurso na solicitação (bucket ou objeto), o Amazon S3 avaliará as políticas de recursos correspondentes (política de bucket, ACL de bucket e ACL de objeto) ao mesmo tempo.
nota
Se a Conta da AWS pai for a proprietária do recurso (bucket ou objeto), ela poderá conceder permissões de recurso à entidade principal do IAM usando a política de usuário ou a política de recurso.
-
Contexto do bucket: neste contexto, o Amazon S3 avalia as políticas de propriedade da Conta da AWS que possui o bucket.
Se a Conta da AWS que é proprietária do objeto na solicitação não for a mesma que é proprietária do bucket, o Amazon S3 verificará as políticas se o proprietário do bucket tiver negado explicitamente o acesso ao objeto. Se houver uma negação explícita definida no objeto, o Amazon S3 não autorizará a solicitação.
-
Contexto de objeto: o solicitante deve ter permissões do proprietário do objeto para executar uma operação específica de objeto. Nesta etapa, o Amazon S3 avalia a ACL do objeto.
nota
Se os proprietários do bucket e do objeto forem os mesmos, o acesso ao objeto poderá ser concedido na política de bucket, que é avaliada no contexto de bucket. Se os proprietários forem diferentes, os proprietários do objeto deverão usar uma ACL do objeto para conceder permissões. Se a Conta da AWS que é proprietária do objeto também for a conta pai à qual a entidade principal do IAM pertence, ela poderá configurar permissões de objeto em uma política de usuário, que é avaliada no contexto de usuário. Para obter mais informações sobre como usar essas alternativas de política de acesso, consulte Demonstrações que usam políticas para gerenciar o acesso a recursos do Amazon S3.
Como proprietário do bucket, se você quiser ter propriedade de todos os objetos do bucket e usar políticas de bucket ou políticas baseadas no IAM para gerenciar o acesso a esses objetos, use a configuração aplicada pelo proprietário do bucket em Propriedade do objeto. Com essa configuração, você, como proprietário do bucket, automaticamente tem a propriedade e o controle total sobre todos os objetos de seu bucket. As ACLs de bucket e objeto não poderão ser editadas e não serão mais consideradas para acesso. Para obter mais informações, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.
O seguinte é uma ilustração gráfica da avaliação baseada em contexto para uma operação de objeto.
Exemplo de uma solicitação de operação de objeto
Neste exemplo, a usuária do IAM, Jill, cuja Conta da AWS pai é 1111-1111-1111, envia uma solicitação de operação de objeto (por exemplo, GetObject
) a um objeto pertencente à Conta da AWS 3333-3333-3333 em um bucket pertencente à Conta da AWS 2222-2222-2222.
Jill precisará de permissões da Conta da AWS pai, do proprietário do bucket e do proprietário do objeto. O Amazon S3 avalia o contexto da seguinte forma:
-
Como a solicitação é de uma entidade principal do IAM, o Amazon S3 avalia o contexto de usuário para verificar se a Conta da AWS pai 1111-1111-1111 forneceu a Jill permissão para executar a operação solicitada. Se ela tiver essa permissão, o Amazon S3 avaliará o contexto de bucket. Caso contrário, o Amazon S3 negará a solicitação.
-
No contexto do bucket, o proprietário do bucket, a Conta da AWS 2222-2222-2222, é a autoridade de contexto. O Amazon S3 avalia a política de bucket para determinar se o proprietário do bucket negou explicitamente o acesso de Jill ao objeto.
-
No contexto do objeto, a autoridade de contexto é a Conta da AWS 3333-3333-3333, a proprietária do objeto. O Amazon S3 avalia a ACL do objeto para determinar se Jill tem permissão para acessar o objeto. Se tiver, o Amazon S3 autorizará a solicitação.