Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Impor gravações condicionais em buckets do Amazon S3

Modo de foco
Impor gravações condicionais em buckets do Amazon S3 - Amazon Simple Storage Service

Ao usar as políticas de bucket do Amazon S3, você pode impor gravações condicionais para uploads de objetos em buckets de uso geral.

Uma política de bucket é uma política baseada em recursos que você pode usar para conceder permissões de acesso ao bucket do Amazon S3 e aos objetos contidos nele. Só o proprietário do bucket pode associar uma política a um bucket. Para obter mais informações sobre políticas de bucket, consulte Políticas de bucket para o Amazon S3.

Você pode usar as chaves de condição s3:if-match ou s3:if-none-match como elemento Condition opcional ou o bloco Condition para especificar quando uma política está em vigor. Para uploads fracionados, você deve especificar a chave de condição s3:ObjectCreationOperation para isentar as operações CreateMultipartUpload, UploadPart e UploadPartCopy, pois essas APIs não aceitam cabeçalhos condicionais. Para ter mais informações sobre como usar condições em políticas de bucket, consulte Exemplos de políticas de bucket usando chaves de condição.

nota

Se você usar uma política de bucket para impor gravações condicionais, não poderá realizar operações de cópia no bucket ou no prefixo especificado na política de bucket. As solicitações CopyObject sem um cabeçalho HTTP If-None-Match ou If-Match falham com um erro 403 Access Denied. As solicitações CopyObject feitas com esses cabeçalhos HTTP falham com uma resposta 501 Not Implemented.

Os exemplos a seguir mostram como usar condições em uma política de bucket para forçar os clientes a usar o cabeçalho HTTP If-None-Match ou If-Match.

Exemplo 1: permitir somente uploads de objetos usando solicitações PutObject e CompleteMultipartUpload que incluam o cabeçalho if-none-match

Essa política permite que a conta 111122223333, usuária Alice, grave no bucket amzn-s3-demo-bucket1 se a solicitação incluir o cabeçalho if-none-match, garantindo que a chave de objeto ainda não exista no bucket. Todas as solicitações PutObject e CompleteMultipartUpload ao bucket especificado devem incluir o cabeçalho if-none-match para serem bem-sucedidas. Usando esse cabeçalho, os clientes só poderão gravar nesse bucket se a chave de objeto não existir no bucket.

nota

Essa política também define a chave de condição s3:ObjectCreationOperation que permite uploads fracionados usando as APIs CreateMultipartUpload, UploadPart e UploadPartCopy.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionalPut", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-none-match": "false" } } }, { "Sid": "AllowConditionalPutwithMPUs", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Bool": { "s3:ObjectCreationOperation": "false" } } } ] }

Exemplo 2: permitir somente uploads de objetos usando solicitações PutObject e CompleteMultipartUpload que incluam o cabeçalho if-match

Essa política permite que a conta 111122223333, usuário Alice, grave em amzn-s3-demo-bucket1 somente se a solicitação incluir o cabeçalho if-match. Esse cabeçalho compara o valor da ETag de um objeto no S3 com o valor fornecido durante a operação WRITE. Se esses valores de ETag não forem correspondentes, a operação vai falhar. Todas as solicitações PutObject e CompleteMultipartUpload ao bucket especificado devem incluir o cabeçalho if-match para serem bem-sucedidas.

nota

Essa política também define a chave de condição s3:ObjectCreationOperation que permite uploads fracionados usando as APIs CreateMultipartUpload, UploadPart e UploadPartCopy.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", }, { "Sid": "BlockNonConditionalObjectCreation", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-match": "true" }, "Bool": { "s3:ObjectCreationOperation": "true" } } }, { "Sid": "AllowGetObjectBecauseConditionalPutIfMatchETag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*" } ] }

Exemplo 3: permitir somente solicitações de upload de objetos que incluam o cabeçalho if-none-match ou if-match

Essa política permite que a conta 111122223333, usuário Alice, grave em amzn-s3-demo-bucket1 se as solicitações incluírem o cabeçalho if-none-match ou if-match. Isso permite que Alice faça upload de um objeto se o nome de chave não existir no bucket. Se o nome de chave existir, Alice poderá sobrescrever o objeto se a ETag do objeto corresponder à ETag fornecida na solicitação PUT.

nota

Essa política também define a chave de condição s3:ObjectCreationOperation que permite uploads fracionados usando as APIs CreateMultipartUpload, UploadPart e UploadPartCopy.

{ "Version": "2012-10-17", "Statement": [ { "Sid": " AllowConditionalPutifAbsent", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-none-match": "false" } } }, { "Sid": "AllowConditionalPutIfMatchEtag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Null": { "s3:if-match": "false" } } }, { "Sid": "AllowConditionalObjectCreation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*", "Condition": { "Bool": { "s3:ObjectCreationOperation": "false" } } }, { "Sid": " AllowGetObjectBecauseConditionalPutIfMatchETag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*" } ] }
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.