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 chave de condição do Amazon S3. 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 uma tag específica

A política de permissões a seguir concede ao usuário permissão para ler objetos, mas a condição limita a permissão de leitura somente a objetos que possuem a chave e o valor de tag específicos a seguir.

security : public

Observe que a política usa a chave de condição do Amazon S3, s3:ExistingObjectTag/<tag-key>, para especificar a chave e o valor.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::awsexamplebucket1/*", "Principal": "*", "Condition": { "StringEquals": {"s3:ExistingObjectTag/security": "public" } } } ] }

exemplo 2: permitir que um usuário adicione tags de objeto com restrições nas chaves de tag permitidas

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 limita as chaves de tag que o usuário pode usar. A condição usa a chave de condição s3:RequestObjectTagKeys para especificar o conjunto de chaves de tag.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ], "Principal":{ "CanonicalUser":[ "64-digit-alphanumeric-value" ] }, "Condition": { "ForAllValues:StringLike": { "s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }

A política garante que o conjunto de tags, se especificado na solicitação, tenha as chaves especificadas. Um usuário pode enviar um conjunto de tags vazio em PutObjectTagging, o que é permitido por essa política (um conjunto de tags vazio na solicitação remove as tags existentes no objeto). Se você quiser impedir que um usuário remova o conjunto de tags, adicione outra condição para garantir que o usuário forneça pelo menos um valor. O ForAnyValue na condição garante que pelo menos um dos valores especificados deva estar presente na solicitação.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ], "Principal":{ "AWS":[ "arn:aws:iam::account-number-without-hyphens:user/username" ] }, "Condition": { "ForAllValues:StringLike": { "s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] }, "ForAnyValue:StringLike": { "s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }

Para obter mais informações, consulte Criar uma condição que testa vários valores de chave (operações de conjunto) no Manual do usuário do IAM.

exemplo 3: permitir que um usuário adicione tags de objeto que incluam uma chave e um valor de tag específicos

A política de usuário 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 requer que o usuário inclua uma tag específica (Project) com o valor definido como X.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ], "Principal":{ "AWS":[ "arn:aws:iam::account-number-without-hyphens:user/username" ] }, "Condition": { "StringEquals": { "s3:RequestObjectTag/Project": "X" } } } ] }