Principais
O elemento Principal
especifica o usuário, a conta, o serviço ou outra entidade que tem o acesso permitido ou negado a um recurso. Veja a seguir exemplos de especificação de Principal
. Para obter mais informações, consulte Principal no Guia do usuário do IAM.
Conceder permissões a uma Conta da AWS
Para conceder permissões a uma Conta da AWS, identifique a conta usando o formato a seguir.
"AWS":"
account-ARN
"
Veja os exemplos a seguir.
"Principal":{"AWS":"arn:aws:iam::
AccountIDWithoutHyphens
:root"}
"Principal":{"AWS":["arn:aws:iam::
AccountID1WithoutHyphens
:root","arn:aws:iam::AccountID2WithoutHyphens
:root"]}
O Amazon S3 também é compatível com um ID de usuário canônico, que é uma forma complexa de ID de Conta da AWS. Você pode especificar esse ID usando o formato a seguir.
"CanonicalUser":"
64-digit-alphanumeric-value
"
Veja um exemplo a seguir.
"Principal":{"CanonicalUser":"
64-digit-alphanumeric-value
"}
Para obter informações sobre como encontrar o ID de usuário canônico da conta, consulte Encontrar o ID de usuário canônico da conta.
Importante
Quando você usa um ID de usuário canônico em uma política, o Amazon S3 pode alterar o ID canônico para o ID da Conta da AWS correspondente. Isso afeta a política, pois os dois IDs identificam a mesma conta.
Conceder permissões a um usuário do IAM
Para conceder permissão para um usuário do IAM na sua conta, você deve fornecer um par de nome-valor "AWS":"
.user-ARN
"
"Principal":{"AWS":"arn:aws:iam::
account-number-without-hyphens
:user/username
"}
Para obter exemplos detalhados que fornecem instruções passo a passo, consulte Exemplo 1: Proprietário do bucket que concede permissões do bucket aos usuários e Exemplo 3: O proprietário do bucket concede permissões para objetos que não possui.
nota
Se uma identidade do IAM for excluída depois que você atualizar a política de bucket, a política de bucket mostrará um identificador exclusivo no elemento da entidade principal em vez de um ARN. Esses IDs exclusivos nunca são reutilizados; portanto você pode remover com segurança entidades principais com identificadores exclusivos de todas as suas instruções de política. Para obter mais informações sobre identificadores exclusivos, consulte Identificadores do IAM no Guia do usuário do IAM.
Conceder permissões anônimas
Para conceder permissão a todos, também denominada acesso anônimo, defina o curinga ("*"
) como o valor Principal
. Por exemplo, se você configura seu bucket como um site, quer que todos os objetos no bucket sejam publicamente acessíveis.
"Principal":"*"
"Principal":{"AWS":"*"}
Usar "Principal": "*"
com um efeito Allow
em uma política baseada em recursos permite que qualquer pessoa, mesmo que não esteja conectada à AWS, acesse seu recurso.
Usar "Principal" : { "AWS" : "*" }
com um efeito Allow
em uma política baseada em recursos permite que qualquer usuário raiz, usuário do IAM, sessão de função assumida ou usuário federado em qualquer conta na mesma partição acesse seu recurso.
Para usuários anônimos, esses dois métodos são equivalentes. Para obter mais informações, consulte Todas as entidades principais no Guia do usuário do IAM.
Não é possível usar um curinga para fazer a correspondência de parte de um nome de entidade principal ou ARN.
Importante
Como qualquer pessoa pode criar uma Conta da AWS, o nível de segurança desses dois métodos é equivalente, mesmo que funcionem de maneira diferente.
Atenção
Tenha cuidado ao conceder acesso anônimo ao bucket do Amazon S3. Quando você concede acesso anônimo, qualquer pessoa no mundo pode acessar seu bucket. É altamente recomendável que você nunca conceda nenhum tipo de acesso anônimo de gravação ao seu bucket do S3.
Exigir acesso por URLs do CloudFront
Você pode exigir que os usuários acessem seu conteúdo do Amazon S3 usando URLs do Amazon CloudFront em vez de URLs do Amazon S3. Para fazer isso, crie uma identidade de acesso de origem (OAI) do CloudFront. Em seguida, altere as permissões no bucket ou nos objetos em seu bucket. O formato para especificar a OAI em uma instrução Principal
é o descrito a seguir.
"Principal":{"CanonicalUser":"
Amazon S3 Canonical User ID assigned to origin access identity
"}
Para obter mais informações, consulte Como usar uma identidade de acesso de origem para restringir o acesso ao conteúdo do Amazon S3 no Guia do desenvolvedor do Amazon CloudFront.