Como posso solucionar problemas ao conceder acesso público de leitura a um objeto do Amazon S3 usando uma política de bucket ou uma ACL de objeto?
Estou tentando conceder acesso público de leitura aos objetos no meu bucket do Amazon Simple Storage Service (Amazon S3) usando uma política de bucket ou uma lista de controle de acesso (ACL) a objetos. No entanto, recebo erros de permissões insuficientes ou acesso negado.
Breve descrição
Suponha que você esteja usando a seguinte política de bucket para conceder acesso público de leitura aos objetos no seu bucket:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::example-bucket/*" ] } ] }
Você pode receber os erros de **Permissões insuficientes ** ou Acesso negado pelos seguintes motivos:
- Você não tem a permissão s3:PutBucketPolicy para atualizar ou criar uma política de bucket para seu bucket do Amazon S3.
- Você não tem a permissão s3:PutObjectAcl para modificar a ACL do objeto.
- A política de bucket do S3 ou a ACL do objeto estão em conflito com as configurações de Bloqueio de acesso público do S3.
Resolução
Conceder as permissões necessárias
Certifique-se de que o usuário ou perfil do AWS Identity and Access Management (IAM) que você usa tenha as seguintes permissões:
- s3:PutBucketPolicy para criar ou atualizar a política do seu bucket do S3
- s3:PutObjectAcl para atualizar a ACL de um objeto para conceder acesso público de leitura
Atualizar as configurações de bloqueio de acesso público
Por padrão, todos os recursos do Amazon S3, como buckets, objetos e sub-recursos relacionados, são privados e não permitem acesso público. As configurações de bloqueio de acesso público para pontos de acesso, buckets e contas ajudam você a gerenciar o acesso público aos recursos do Amazon S3. Essas configurações substituem as políticas de bucket do S3 e as ACLs de objetos para que você possa limitar o acesso público a esses recursos. Quando a política de bucket ou a ACL do objeto que você configurou entra em conflito com a configuração de bloqueio de acesso público, você não pode criar uma política de bucket para conceder acesso público de leitura. O S3 também nega permissões para modificar a política de bucket ou as ACLs de objetos para conceder acesso público de leitura.
O Bloqueio de Acesso Público do Amazon S3 fornece quatro configurações para bloquear o acesso público a buckets e objetos. Essas configurações são independentes e podem ser usadas em qualquer combinação.
- BlockPublicAcls - Bloquear o acesso público concedido usando novas ACLs: O Amazon S3 bloqueia as permissões de acesso público que você aplica a buckets ou objetos recém-adicionados. O S3 também nega a criação de novas ACLs de acesso público para buckets e objetos existentes. Essa configuração não altera permissões existente que permitem acesso público a recursos do S3 que usam ACLs.
- IgnorePublicAcls - Bloquear o acesso público concedido usando qualquer ACL: O Amazon S3 ignora todas as ACLs que concedem acesso público a buckets e objetos.
- **BlockPublicPolicy - Bloquear o acesso público concedido usando um novo bucket público ou políticas de ponto de acesso:**O Amazon S3 bloqueia o uso de novos buckets e políticas de pontos de acesso que concedem acesso público a buckets e objetos. Essa configuração não altera nenhuma política existente que permite acesso público aos recursos do S3.
- **RestrictPublicBuckets - Bloquear o acesso público e entre contas concedido usando qualquer política pública de bucket ou ponto de acesso:**O Amazon S3 ignora o acesso público e entre contas para buckets ou pontos de acesso com políticas que concedem acesso público a buckets e objetos.
Para obter mais informações, consulte Bloqueio de Acesso Público do Amazon S3 - Outra camada de proteção para suas contas e buckets.
Certifique-se de atualizar as configurações do Bloqueio de acesso público do S3 com base no seu caso de uso.
Observação:
- Se você estiver concedendo acesso público de leitura a objetos usando ACLs, desative as seguintes configurações de Bloqueio de acesso público:
- BlockPublicAcls no nível do bucket e no nível da conta
- IgnorePublicAcls no nível do bucket e no nível da conta
- Se você estiver concedendo acesso público de leitura a objetos usando uma política de bucket do S3, desative as seguintes configurações de Bloqueio de acesso público:
- BlockPublicPolicy no nível do bucket e no nível da conta
- RestrictPublicBuckets no nível do bucket e no nível da conta
- Você não pode usar ACLs de bucket ou ACLs de objetos para conceder acesso público de leitura para buckets que tenham Propriedade de objeto do S3 definida como Aplicada pelo proprietário do bucket. Nesse caso, você deve usar políticas para conceder acesso ao seu bucket e aos objetos no bucket. As solicitações para definir ou atualizar ACLs falham e você recebe a mensagem de erro AccessControlListNotSupported. As solicitações de leitura de ACLs ainda são aceitas.
Se você tiver ativado as configurações de Bloqueio de acesso público para todos os buckets do S3 na sua conta, verá a mensagem Bucket e objetos não públicos. Para obter mais informações, consulte Definir configurações de bloqueio de acesso público para sua conta.
Importante: quando você concede acesso público de leitura aos objetos, qualquer pessoa na Internet pode acessá-los. Se não for isso que você deseja, certifique-se de que seu bucket do S3 não esteja acessível ao público. Para obter mais informações, consulte as Práticas recomendadas de segurança do Amazon S3.
Informações relacionadas
Como conceder acesso de leitura público a alguns objetos em meu bucket do Amazon S3?
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 anos