Como o Amazon S3 autoriza uma solicitação para uma operação de bucket
Quando o Amazon S3 recebe uma solicitação para uma operação de bucket, ele converte todas as permissões relevantes em um conjunto de políticas para avaliar em tempo de execução. As permissões relevantes incluem permissões baseadas em recursos (por exemplo, políticas de bucket e listas de controle de acesso de bucket) e políticas de usuário se a solicitação vier de uma entidade principal do IAM. Em seguida, o Amazon S3 avalia o conjunto de políticas resultante em uma série de etapas, de acordo com o contexto específico (contexto do usuário ou do bucket):
-
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 conta pai anexa ao principal. Se o pai também possuir o recurso na solicitação (neste caso, o bucket), o Amazon S3 também avaliará as políticas dos recursos correspondentes (a política do bucket e a ACL do bucket) ao mesmo tempo. Sempre que uma solicitação para uma operação de bucket é feita, os logs de acesso ao servidor registram o ID canônico do solicitante. Para obter mais informações, consulte Registrar em log as solicitações com registro em log de acesso ao servidor.
-
Contexto de bucket: o solicitante deve ter permissões do proprietário do bucket para executar uma operação específica de bucket. Nesta etapa, o Amazon S3 avalia um subconjunto de políticas de propriedade da Conta da AWS que é proprietária do bucket.
O proprietário do bucket pode conceder permissão usando uma política do bucket ou a ACL do bucket. Se a Conta da AWS que é proprietária do bucket também for a conta principal de uma entidade principal do IAM, ela poderá configurar permissões de bucket em uma política de usuário.
O seguinte é uma ilustração gráfica da avaliação baseada em contexto para a operação de bucket.
Os exemplos a seguir ilustram a lógica da avaliação.
Exemplo 1: operação de bucket solicitada pelo proprietário do bucket
Neste exemplo, o proprietário do bucket envia uma solicitação a uma operação de bucket usando as credenciais raiz da Conta da AWS.
O Amazon S3 executa a avaliação de contexto da seguinte forma:
-
Como a solicitação é feita usando as credenciais do usuário raiz de uma Conta da AWS, o contexto do usuário não é avaliado.
-
No contexto de bucket, o Amazon S3 analisa a política de bucket para determinar se o solicitante tem permissão para executar a operação. O Amazon S3 autoriza a solicitação.
Exemplo 2: operação de bucket solicitada por uma Conta da AWS que não é a proprietária do bucket
Neste exemplo, uma solicitação é feita usando as credenciais do usuário raiz da Conta da AWS 1111-1111-1111 a uma operação de bucket pertencente à Conta da AWS 2222-2222-2222. Nenhum usuário do IAM está envolvido nessa solicitação.
Nesse exemplo, o Amazon S3 avalia o contexto da seguinte forma:
-
Como a solicitação é feita usando as credenciais do usuário raiz de uma Conta da AWS, o contexto do usuário não é avaliado.
-
No contexto de bucket, o Amazon S3 examina a política de bucket. Se o proprietário do bucket (Conta da AWS 2222-2222-2222) não tiver autorizado a Conta da AWS 1111-1111-1111 a executar a operação solicitada, o Amazon S3 negará a solicitação. Caso contrário, o Amazon S3 concederá a solicitação e executará a operação.
Exemplo 3: operação de bucket solicitada por uma entidade principal do IAM cuja Conta da AWS pai também é a proprietária do bucket
No exemplo, a solicitação é enviada por Jill, uma usuária do IAM na Conta da AWS 1111-1111-1111, que também é proprietária do bucket.
O Amazon S3 executa a seguinte avaliação de contexto:
-
Como a solicitação é de uma entidade principal do IAM, no contexto de usuário, o Amazon S3 avalia todas as políticas que pertencem à Conta da AWS pai para determinar se Jill tem permissão para executar a operação.
Neste exemplo, a Conta da AWS pai 1111-1111-1111 à qual a entidade principal pertence também é a proprietária do bucket. Como resultado, além da política do usuário, o Amazon S3 também avalia a política e a ACL do bucket no mesmo contexto, já que pertencem à mesma conta.
-
Como o Amazon S3 avaliou a política do bucket e a ACL do bucket como parte do contexto de usuário, ele não avalia o contexto de bucket.
Exemplo 4: operação de bucket solicitada por uma entidade principal do IAM cuja Conta da AWS pai não é a proprietária do bucket
Neste exemplo, a solicitação é enviada por Jill, uma usuária do IAM cuja Conta da AWS pai é 1111-1111-1111, mas o bucket pertence a outra Conta da AWS, 2222-2222-2222.
Jill precisará de permissões da Conta da AWS pai e do proprietário do bucket. O Amazon S3 avalia o contexto da seguinte forma:
-
Como a solicitação é de um principal do IAM, o Amazon S3 avalia o contexto de usuário analisando as políticas criadas pela conta para verificar se Jill tem as permissões necessárias. Se Jill tiver permissão, o Amazon S3 avaliará o contexto de bucket. Se Jill não tiver permissão, a solicitação será negada.
-
No contexto de bucket, o Amazon S3 verifica se o proprietário do bucket 2222-2222-2222 concedeu a Jill (ou à Conta da AWS pai) permissão para executar a operação solicitada. Se ela tiver permissão, o Amazon S3 concederá a solicitação e executará a operação. Caso contrário, o Amazon S3 negará a solicitação.