Configuração de permissões - Amazon Simple Storage Service

Configuração de permissões

Ao configurar a replicação, é preciso adquirir as permissões necessárias do seguinte modo:

  • O Simple Storage Service (Amazon S3) precisa de permissões para replicar objetos em seu nome. Você concede essas permissões criando uma função do IAM e especificando essa função na configuração da replicação.

  • Quando os buckets de origem e de destino não pertencem à mesma conta, o proprietário do bucket de destino deve conceder ao proprietário do bucket de origem permissões para armazenar réplicas.

Criar um perfil do IAM

Por padrão, todos os recursos do Simple Storage Service (Amazon S3): buckets, objetos e sub-recursos relacionados, são privados, e somente o proprietário do recurso pode acessá-lo. O Amazon S3 precisa de permissões de leitura e replicação de objetos a partir do bucket de origem. Você concede essas permissões criando uma função do IAM e especificando a função na configuração da replicação.

Esta seção explica a política de confiança e a política de permissão mínima necessária. As demonstrações de exemplo fornecem instruções passo a passo para criar uma função do IAM. Para obter mais informações, consulte Demonstrações: exemplos para configurar a replicação.

  • O exemplo a seguir mostra uma política de confiança na qual você identifica o Simple Storage Service (Amazon S3) como a entidade principal do serviço que pode assumir a função.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
  • O exemplo a seguir mostra uma política de confiança na qual você identifica o Amazon S3 e o S3 Batch Operations como entidades principais de serviço. Isso é útil se você estiver criando um trabalho de replicação em lote. Para ter mais informações, consulte Criar um trabalho de replicação em lote para uma primeira regra de replicação ou um novo destino.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service": [ "s3.amazonaws.com", "batchoperations.s3.amazonaws.com" ] }, "Action":"sts:AssumeRole" } ] }

    Para obter mais informações sobre perfis do IAM, consulte Perfis do IAM no Guia do usuário do IAM.

  • O exemplo a seguir mostra uma política de acesso em que você concede à função permissões para realizar as tarefas de replicação em seu nome. Quando o Amazon S3 assumir a função, ele terá as permissões que você especificar nessa política. Nesta política, DOC-EXAMPLE-BUCKET1 é o bucket de origem e DOC-EXAMPLE-BUCKET2 é o bucket de destino.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" } ] }

    A política de acesso concede permissões às seguintes ações:

    • s3:GetReplicationConfiguration e s3:ListBucket: as permissões para essas ações no bucket DOC-EXAMPLE-BUCKET1 (o bucket de origem) permitem que o Amazon S3 recupere a configuração de replicação e liste o conteúdo do bucket. (O modelo de permissões atual exige a permissão s3:ListBucket para acessar marcadores de exclusão.)

    • s3:GetObjectVersionForReplication e s3:GetObjectVersionAcl: as permissões para essas ações são concedidas em todos os objetos para permitir que o Simple Storage Service (Amazon S3) obtenha uma versão específica dos objetos e as listas de controle de acesso (ACL) associadas aos objetos.

    • s3:ReplicateObject e s3:ReplicateDelete: as permissões para essas ações em todos os objetos no bucket DOC-EXAMPLE-BUCKET2 (o bucket de destino) permitem que o Amazon S3 replique objetos ou marcadores de exclusão no bucket de destino. Para obter mais informações sobre marcadores de exclusão, consulte Como a exclusão de operações afeta a replicação.

      nota

      As permissões para a ação s3:ReplicateObject no bucket DOC-EXAMPLE-BUCKET2 (o bucket de destino) também permitem a replicação de metadados, como etiquetas de objeto e ACLS. Portanto, você não precisa conceder permissão explícita para a ação s3:ReplicateTags.

    • s3:GetObjectVersionTagging: as permissões para essa ação em objetos no bucket DOC-EXAMPLE-BUCKET1 permitem que o Amazon S3 leia etiquetas de objeto para replicação. Para ter mais informações, consulte Categorizando seu armazenamento usando tags. Se o Amazon S3 não tiver essas permissões, ele replicará os objetos, mas não as tags do objeto.

    Para obter uma lista de ações do Amazon S3, consulte Ações de política do Amazon S3.

    Importante

    Mais especificamente, a Conta da AWS proprietária da função do IAM precisa ter permissões para as ações que ela concede à função do IAM.

    Por exemplo, suponha que o bucket de origem contenha objetos pertencentes a uma outra Conta da AWS. O proprietário dos objetos deverá conceder explicitamente as permissões exigidas à Conta da AWS proprietária da função do IAM por meio da ACL do objeto. Caso contrário, o Amazon S3 não conseguirá acessar os objetos e haverá falha na replicação dos objetos. Para obter informações sobre as permissões da ACL, consulte Visão geral da lista de controle de acesso (ACL).

    As permissões descritas aqui são relativas à configuração mínima da replicação. Se optar por adicionar configurações de replicação opcionais, será necessário conceder permissões adicionais ao Amazon S3. Para obter mais informações, consulte Configurações de replicação adicionais.

Conceder permissões quando os buckets de origem e de destino pertencerem a Contas da AWS diferentes

Quando os buckets de origem e de destino não pertencem à mesma conta, o proprietário do bucket de destino também deve adicionar uma política de bucket para conceder ao proprietário do bucket de origem permissões para realizar as ações de replicação, como se segue. Nesta política, DOC-EXAMPLE-BUCKET2 é o bucket de destino.

nota

O formato do ARN do perfil pode parecer diferente. Se o perfil tiver sido criado usando o console, o formato do ARN será arn:aws:iam::account-ID:role/service-role/role-name. Se o perfil tiver sido criado usando a AWS CLI, o formato do ARN será arn:aws:iam::account-ID:role/role-name. Para obter mais informações, consulte Perfis do IAM no Guia do usuário do IAM.

{ "Version":"2012-10-17", "Id":"PolicyForDestinationBucket", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action":[ "s3:ReplicateDelete", "s3:ReplicateObject" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" }, { "Sid":"Permissions on bucket", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-account-ID:role/service-role/source-account-IAM-role" }, "Action": [ "s3:List*", "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET2" } ] }

Para ver um exemplo, consulte Configurar a replicação quando os buckets de origem e destino pertencerem a contas diferentes.

Se os objetos no bucket de origem estiverem marcados, observe o seguinte:

  • Se o proprietário do bucket de origem conceder ao Amazon S3 permissão para as ações s3:GetObjectVersionTagging e s3:ReplicateTags para replicação de tags de objeto (pela função do IAM), o Amazon S3 replicará as tags com os objetos. Para obter informações sobre a função do IAM, consulte Criar um perfil do IAM.

  • Se o proprietário do bucket de destino não quiser replicar as tags, ele poderá adicionar a seguinte instrução à política do bucket de destino para negar explicitamente a permissão para a ação s3:ReplicateTags. Nesta política, DOC-EXAMPLE-BUCKET2 é o bucket de destino.

    ... "Statement":[ { "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::SourceBucket-account-id:role/service-role/source-account-IAM-role" }, "Action":"s3:ReplicateTags", "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET2/*" } ] ...

Conceder permissões para operações em lote do S3

O recurso S3 Batch Replication oferece uma maneira de replicar objetos que existiam antes que uma configuração de replicação estivesse em vigor, objetos que foram replicados anteriormente e objetos cuja replicação falhou. Você pode criar um trabalho único de replicação em lote ao criar a primeira regra em uma configuração de replicação nova ou ao adicionar um novo destino a uma configuração existente por meio do AWS Management Console. Você também pode iniciar a replicação em lote para uma configuração de replicação existente criando uma tarefa de operações em lote.

Para obter exemplos de políticas e perfis do IAM de replicação em lote, consulte Configurar políticas do IAM para replicação em lote.

Alterar a propriedade da réplica

Quando diferentes Contas da AWS são proprietárias dos buckets de origem e de destino, é possível instruir o Amazon S3 para alterar a propriedade da réplica para a Conta da AWS proprietária do bucket de destino. Para obter mais informações sobre a substituição do proprietário, consulte Alterar o proprietário da réplica.

Habilitar o recebimento de objetos replicados de um bucket de origem

Você pode gerar rapidamente as políticas necessárias para permitir o recebimento de objetos replicados de um bucket de origem no AWS Management Console.

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação à esquerda, escolha Buckets.

  3. Na lista Buckets, escolha o bucket que você deseja usar como bucket de destino.

  4. Escolha Management (Gerenciamento) e role para baixo até Replication rules (Regras de replicação).

  5. Em Actions (Ações), escolha Receive replicated objects (Receber objetos replicados).

    Siga as instruções e insira o ID da Conta da AWS do bucket de origem e escolha Generate policies (Gerar políticas). Serão geradas uma política de bucket do Amazon S3 e uma política de chave do KMS.

  6. Para adicionar essa política à política de bucket existente, escolha Apply settings (Aplicar configurações) ou Copy (Copiar) para copiar manualmente as alterações.

  7. (Opcional) Copie a política AWS KMS em sua política de chave do KMS desejada no console do AWS Key Management Service.