Configurar permissões para replicação em tempo real
Ao configurar a replicação em tempo real no Amazon S3, você deve 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 um perfil do AWS Identity and Access Management (IAM) e especificando esse perfil na configuração de replicação.
-
Quando os buckets de origem e de destino não pertencem à mesma conta, o proprietário do bucket de destino também deve conceder ao proprietário do bucket de origem permissões para armazenar réplicas.
Tópicos
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 um perfil do IAM e especificando esse perfil na configuração da replicação.
Esta seção explica a política de confiança e a política de permissões mínimas necessárias anexadas a esse perfil do IAM. As demonstrações de exemplo fornecem instruções passo a passo para criar uma função do IAM. Para ter mais informações, consulte Exemplos para configurar a replicação em tempo real.
A política de confiança identifica quais identidades de entidade principal podem assumir o perfil do IAM. A política de permissões especifica quais ações o perfil do IAM pode realizar, em quais recursos e sob quais condições.
-
O exemplo a seguir mostra uma política de confiança na qual você identifica o Amazon S3 como a entidade principal do AWS service (Serviço da AWS) que pode assumir o perfil:
{ "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 Operações em Lote do S3 como entidades principais que podem assumir o perfil. Use essa abordagem se estiver criando um trabalho do recurso Replicação em Lote. Para ter mais informações, consulte Criar um trabalho de replicação em lote para novas regras ou destinos de replicação.
{ "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 funções do IAM, consulte Funções do IAM no Manual do usuário do IAM.
-
O exemplo a seguir mostra a política de permissões, na qual você concede ao perfil do IAM 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,
é o bucket de origem eamzn-s3-demo-source-bucket
é o bucket de destino.amzn-s3-demo-destination-bucket
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::
amzn-s3-demo-source-bucket
" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-source-bucket
/*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete", "s3:ReplicateTags" ], "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" } ] }Essa política concede permissões para as seguintes ações:
-
s3:GetReplicationConfiguration
es3:ListBucket
: as permissões para essas ações no bucket
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ãoamzn-s3-demo-source-bucket
s3:ListBucket
para acessar marcadores de exclusão.) -
s3:GetObjectVersionForReplication
es3: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
es3:ReplicateDelete
: as permissões para essas ações em todos os objetos no bucket
permitem que o Simple Storage Service (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.amzn-s3-demo-destination-bucket
nota
As permissões para a ação
s3:ReplicateObject
no bucket
também permitem a replicação de metadados, como tags de objeto e ACLs. Portanto, você não precisa conceder permissão explícita para a açãoamzn-s3-demo-destination-bucket
s3:ReplicateTags
. -
s3:GetObjectVersionTagging
: as permissões para essa ação nos objetos do bucket
permitem que o Amazon S3 leia as tags dos objetos para replicação. Para obter mais informações sobre etiquetas de objeto, consulte Categorizar seu armazenamento usando tags. Se o Amazon S3 não tiver a permissãoamzn-s3-demo-source-bucket
s3:GetObjectVersionTagging
, ele replicará os objetos, mas não as tags dos objetos.
Consulte uma lista de ações do Amazon S3 em Actions, resources, and condition keys for Amazon S3 na Referência de autorização do serviço.
Para ter mais informações sobre as permissões referentes a operações de API do S3 de acordo com os tipos de recurso do S3, consulte Permissões obrigatórias para operações de API 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 do perfil do IAM por meio de listas de controle de acesso (ACLs) dos objetos. 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. Por exemplo, se você quiser replicar objetos criptografados, também precisará conceder as permissões de chave do AWS Key Management Service (AWS KMS) necessárias. Para ter mais informações, consulte Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).
-
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 mostrado no exemplo a seguir. Neste exemplo de política,
é o bucket de destino.amzn-s3-demo-destination-bucket
Também é possível usar o console do Amazon S3 para que essa política de bucket seja gerada automaticamente para você. Consulte mais informações em Habilitar o recebimento de objetos replicados de um bucket de origem.
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::
. Se o perfil tiver sido criado usando a AWS CLI, o formato do ARN será account-ID
:role/service-role/role-name
arn:aws:iam::
. Para obter mais informações, consulte Funções do IAM no Guia do usuário do IAM. account-ID
:role/role-name
{ "Version":"2012-10-17", "Id":"PolicyForDestinationBucket", "Statement":[ { "Sid":"Permissions on objects", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
source-bucket-account-ID
:role/service-role/source-account-IAM-role
" }, "Action":[ "s3:ReplicateDelete", "s3:ReplicateObject" ], "Resource":"arn:aws:s3:::/*" }, { "Sid":"Permissions on bucket", "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
amzn-s3-demo-destination-bucket
source-bucket-account-ID
:role/service-role/source-account-IAM-role
" }, "Action": [ "s3:List*", "s3:GetBucketVersioning", "s3:PutBucketVersioning" ], "Resource":"arn:aws:s3:::
" } ] }amzn-s3-demo-destination-bucket
Para ver um exemplo, consulte Configuração da replicação de buckets em 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
es3: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,
é o bucket de destino.amzn-s3-demo-destination-bucket
... "Statement":[ { "Effect":"Deny", "Principal":{ "AWS":"arn:aws:iam::
source-bucket-account-id
:role/service-role/source-account-IAM-role
" }, "Action":"s3:ReplicateTags", "Resource":"arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" } ] ...
nota
Se você quiser replicar objetos criptografados, também precisará conceder as permissões de chave do AWS Key Management Service (AWS KMS) necessárias. Para ter mais informações, consulte Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).
Habilitar o recebimento de objetos replicados de um bucket de origem
Em vez de adicionar manualmente a política anterior ao bucket de destino, é possível gerar rapidamente as políticas necessárias para permitir o recebimento de objetos replicados de um bucket de origem no console do Amazon S3.
Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/
. -
No painel de navegação à esquerda, escolha Buckets.
-
Na lista Buckets, escolha o bucket que você deseja usar como bucket de destino.
-
Escolha Management (Gerenciamento) e role para baixo até Replication rules (Regras de replicação).
-
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 Gerar políticas. O console gera uma política de bucket do Amazon S3 e uma política de chave do KMS.
-
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.
-
(Opcional) Copie a política AWS KMS na política de chave do KMS desejada no console do AWS Key Management Service.
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.
Conceder permissões para operações em lote do S3
O recurso de Replicação em Lote do S3 oferece uma maneira de replicar os seguintes objetos:
-
Objetos que já existiam antes da implantação de uma configuração de replicação
-
Objetos que já foram replicados anteriormente
-
Objetos que já falharam em uma replicação
É possível 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 console do Amazon S3. Você também pode iniciar o Replicação em Lote para uma configuração de replicação existente criando um trabalho do Operações em Lote.
Consulte exemplos de política e perfil do IAM do Replicação em Lote em Configurar um perfil do IAM para o Replicação em Lote do S3.