Marcação e políticas de controle de acesso - Amazon Simple Storage Service

Marcação e políticas de controle de acesso

Você também pode usar políticas de permissões (políticas de bucket e de usuário) para gerenciar permissões relacionadas à atribuição de tags de objetos. Para ver ações de política, consulte os seguintes tópicos:

As tags de objeto permitem ter controle de acesso para gerenciar permissões. Você pode conceder permissões condicionais com base em tags de objeto. O Amazon S3 oferece suporte às seguintes chaves de condição que podem ser usadas para conceder permissões condicionais com base em tags de objeto:

  • s3:ExistingObjectTag/<tag-key> – Use esta chave de condição para verificar se uma tag de objeto existente tem a chave e o valor de tag específicos.

    nota

    Para conceder permissões para as operações PUT Object e DELETE Object, não é permitido usar essa chave de condição. Isto é, você não pode criar uma política para conceder ou negar permissões de usuário para excluir ou substituir um objeto existente com base nas tags existentes.

  • s3:RequestObjectTagKeys – Use esta chave de condição para restringir as chaves de tag que deseja permitir em objetos. Isso é útil para adicionar tags a objetos usando as solicitações PutObjectTagging e PutObject e de POST objeto.

  • s3:RequestObjectTag/<tag-key> – Use esta chave de condição para restringir as chaves e os valores de tag que deseja permitir em objetos. Isso é útil para adicionar tags a objetos usando as solicitações PutObjectTagging e PutObject e de bucket POST.

Para obter uma lista completa de chaves de condição específicas de serviço do Amazon S3, consulte Exemplos de políticas de bucket usando chaves de condição. As seguintes políticas de permissões ilustram como a marcação de objetos permite gerenciar permissões de acesso.

exemplo 1: Permitir que um usuário leia somente os objetos que têm a chave e o valor de uma etiqueta específica

A política de permissões a seguir limita a capacidade de leitura dos usuários para que leiam somente objetos que tenham a chave e o valor da tag environment: production. Essa política usa a chave de condição s3:ExistingObjectTag para especificar a chave e o valor da etiqueta.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": ["s3:GetObject", "s3:GetObjectVersion"], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals": {"s3:ExistingObjectTag/environment": "production"} } } ] }
exemplo 2: Restringir quais chaves de etiqueta de objeto os usuários podem adicionar

A política de permissões a seguir concede ao usuário permissões para executar a ação s3:PutObjectTagging, que permite que o usuário adicione tags a um objeto existente. A condição usa a chave de condição s3:RequestObjectTagKeys para especificar as chaves de etiqueta permitidas, como Owner ou CreationDate. Para obter mais informações, consulte Criar uma condição que testa vários valores de chave no Guia do usuário do IAM.

A política garante que cada chave de etiqueta especificada na solicitação seja uma chave de etiqueta autorizada. O qualificador ForAnyValue na condição garante que pelo menos uma das chaves especificadas esteja presente na solicitação.

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }
exemplo 3: Exigir a chave e o valor de uma etiqueta específica ao permitir que os usuários adicionem etiquetas de objeto

O exemplo de política a seguir concede ao usuário permissão para executar a ação s3:PutObjectTagging, que permite que o usuário adicione etiquetas a um objeto existente. A condição requer que o usuário inclua uma chave de etiqueta específica (como Project) com o valor definido como X.

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ], "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X" } } } ] }