Configurar a replicação para buckets na mesma conta
A replicação em tempo real é a cópia assíncrona automática de objetos em buckets na mesma região da AWS ou em Regiões da AWS diferentes. A replicação em tempo real copia os objetos recém-criados e as atualizações de objeto de um bucket de origem para buckets de destino. Para ter mais informações, consulte Replicar objetos dentro de uma região e entre regiões.
Ao configurar a replicação, você adiciona regras de replicação ao bucket de origem. As regras de replicação definem quais objetos do bucket de origem devem ser replicados e o bucket de destino ou buckets nos quais os objetos replicados são armazenados. Você pode criar uma regra para replicar todos os objetos dentro de um bucket ou um subgrupo de objetos com um prefixo específico de nome de chaves, uma ou mais tags de objetos ou ambos. Um bucket de destino pode estar na mesma Conta da AWS que o bucket de origem ou pode estar em uma conta diferente.
Se você especificar um ID da versão do objeto a ser excluído, o Amazon S3 excluirá essa versão do objeto no bucket de origem. No entanto, ele não replica a exclusão no bucket de destino. Em outras palavras: ele não exclui a mesma versão do objeto do bucket de destino. Isso protege os dados contra exclusões mal-intencionadas.
Quando você adiciona uma regra de replicação a um bucket, ela fica ativada por padrão, portanto, começa a funcionar assim que é salva.
Neste exemplo, você configura a replicação em tempo real para os buckets de origem e de destino que pertencem à mesma Conta da AWS. São apresentados exemplos de uso do console do Amazon S3, da AWS Command Line Interface (AWS CLI), do AWS SDK for Java e do AWS SDK for .NET.
Para configurar uma regra de replicação quando o bucket de destino estiver na mesma Conta da AWS que o bucket de origem, siga estas etapas.
Se o bucket de destino estiver um uma conta diferente do bucket de origem, você deverá adicionar uma política ao bucket de destino. Assim, será possível conceder ao proprietário da conta do bucket de origem permissão para replicar objetos no bucket de destino. Para obter mais informações, consulte Conceder permissões quando os buckets de origem e de destino pertencerem a Contas da AWS diferentes.
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 de Buckets, escolha o nome do bucket desejado.
-
Selecione a guia Gerenciamento, role para baixo até Regras de replicação e selecione Criar regra de replicação.
-
Na seção Configuração da regra de replicação, em Nome da regra de replicação, insira um nome para sua regra para ajudar a identificá-la posteriormente. O nome é obrigatório e precisa ser exclusivo dentro do bucket.
-
Em Status, Enabled (Habilitado) é selecionado por padrão. Uma regra ativada começa a funcionar assim que você a salva. Se você quiser ativar a regra posteriormente, selecione Desabilitado.
-
Se o bucket tiver regras de replicação existentes, você será instruído a definir uma prioridade para a regra. Defina uma prioridade para a regra, de maneira a evitar conflitos causados pelos objetos incluídos no escopo de mais de uma regra. No caso de sobreposição de regras, o Amazon S3 usa a prioridade da regra para determinar qual regra aplicar. Quanto maior o número, maior a prioridade. Para obter mais informações sobre prioridade de regra, consulte Elementos do arquivo de configuração de replicação.
-
Em Bucket de origem, você tem as seguintes opções para definir a origem da replicação:
-
Para replicar todo o bucket, escolha Apply to all objects in the bucket (Aplicar a todos os objetos no bucket).
-
Para replicar todos os objetos que tenham o mesmo prefixo, escolha Limit the scope of this rule using one or more filters (Limitar o escopo desta regra usando um ou mais filtros). Isso limita a replicação a todos os objetos que tenham nomes que começam com o prefixo especificado (por exemplo,
pictures
). Insira um prefixo na caixa Prefixo.nota
Se você inserir um prefixo que seja o nome de uma pasta, é preciso usar / (barra) como o último caractere (por exemplo,
pictures/
). -
Para replicar todos os objetos com uma ou mais tags de objeto, selecione Adicionar tag e insira o par de chave-valor nas caixas. Repita o procedimento para adicionar outra tag. Você pode combinar um prefixo e tags. Para obter mais informações sobre etiquetas de objeto, consulte Categorizar seu armazenamento usando tags.
O novo esquema XML de configuração de replicação é compatível com os filtros de prefixo e tags e com a priorização das regras. Para obter mais informações sobre o novo esquema, consulte Considerações sobre a compatibilidade com versões anteriores. Para obter mais informações sobre o XML usado com a API do Amazon S3 que funciona atrás da interface do usuário, consulte Elementos do arquivo de configuração de replicação. O novo esquema é descrito como configuração de replicação XML V2.
-
-
Em Destino, selecione o bucket no qual você deseja que o Amazon S3 replique objetos.
nota
O número de buckets de destino é limitado ao número de Regiões da AWS em determinada partição. Uma partição é um agrupamento de regiões. Atualmente, a AWS tem três partições:
aws
(regiões padrão),aws-cn
(regiões da China) eaws-us-gov
(regiões AWS GovCloud (US)). Para solicitar um aumento da cota do bucket de destino, você pode usar cotas de serviço.-
Para replicar para um bucket ou buckets em sua conta, selecione Escolher um bucket nesta conta e digite ou procure nomes de buckets de destino.
-
Para replicar em um ou mais buckets em uma Conta da AWS diferente, selecione Selecionar um bucket em outra conta e insira o ID e o nome da conta do bucket de destino.
Se o destino estiver um uma conta diferente do bucket de origem, você deverá adicionar uma política de bucket aos buckets de destino para conceder ao proprietário da conta do bucket de origem permissão para replicar objetos. Para ter mais informações, consulte Conceder permissões quando os buckets de origem e de destino pertencerem a Contas da AWS diferentes.
Opcionalmente, se você quiser padronizar a propriedade de novos objetos no bucket de destino, escolha Alterar propriedade do objeto para o proprietário do bucket de destino. Para obter mais informações sobre essa opção, consulte Controlar a propriedade de objetos e desabilitar ACLs para seu bucket.
nota
Se o versionamento não estiver ativado no bucket de destino, você receberá uma advertência que contém um botão Enable versioning (Habilitar versionamento). Escolha esse botão para habilitar o versionamento no bucket.
-
-
Configure uma função do AWS Identity and Access Management (IAM) que o Amazon S3 possa assumir para replicar objetos em seu nome.
Para configurar um perfil do IAM, na seção Perfil do IAM, selecione uma das seguintes opções na lista suspensa de perfis do IAM:
-
Recomendamos que você escolha Create new role (Criar nova função) para que o Amazon S3 crie uma nova função do IAM para você. Quando você salva a regra, uma nova política é gerada para a função do IAM que coincide com os buckets de origem e de destino que você escolher.
-
Você pode usar uma função do IAM existente. Se fizer isso, escolha uma função que conceda ao Amazon S3 as permissões necessárias para a replicação. A replicação falhará se essa função não conceder ao Amazon S3 permissões suficientes para seguir sua regra de replicação.
Importante
Quando você adiciona uma regra de replicação a um bucket, você deve ter a permissão
iam:PassRole
para poder transmitir a função do IAM que concede permissões de replicação do Amazon S3. Para ter mais informações, consulte Conceder permissões ao usuário para transmitir um perfil a um AWS service (Serviço da AWS) no Guia do usuário do IAM. -
-
Para replicar objetos no bucket de origem que estão criptografados com a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), em Criptografia, selecione Replicar objetos criptografados com o AWS KMS. Em chaves do AWS KMS para criptografar objetos de destino estão as chaves de origem que você permite que a replicação use. Todas as chaves de origem do KMS são incluídas por padrão. Para limitar a seleção de chaves do KMS, você pode selecionar um alias ou um ID de chave.
Os objetos criptografados pelas AWS KMS keys que você não seleciona não são replicados. A chave do KMS ou um grupo de chaves do KMS é escolhido para você, mas você pode escolher as chaves do KMS, se desejar. Para obter informações sobre como usar o AWS KMS com replicação, consulte Replicar objetos criptografados (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C).
Importante
Ao replicar objetos que estão criptografados com AWS KMS, a taxa de solicitações do AWS KMS dobra na Região de origem e aumenta na Região de destino pelo mesmo valor. Essas taxas de chamada aprimoradas para AWS KMS se devem à forma com que os dados são recriptografados usando a chave do KMS que você define na região de destino de replicação. O AWS KMS tem uma cota de taxas de solicitação por conta de chamada por região. Para ter informações sobre os padrões de limite, consulte Cotas do AWS KMS: solicitações por segundo: varia no Guia do desenvolvedor do AWS Key Management Service.
Se a taxa de solicitações do objeto
PUT
do Amazon S3 durante a replicação for maior do que a metade do limite da taxa padrão do AWS KMS para sua conta, recomendamos que você solicite um aumento da cota de taxa de solicitação do AWS KMS. Para solicitar um aumento, crie um caso no AWS Support Center em Entre em contato conosco. Por exemplo, suponha que a sua taxa de solicitação do objeto PUT
seja 1.000 solicitações por segundo e você use o AWS KMS para criptografar seus objetos. Nesse caso, recomendamos solicitar que o AWS Support aumente o limite da taxa do AWS KMS para 2,5 mil solicitações por segundo nas regiões de origem e de destino (se forem diferentes) para garantir que não haja nenhum controle de utilização por parte do AWS KMS.Para ver a taxa de solicitação de objeto
PUT
no bucket de origem, visualizePutRequests
nas métricas de solicitação do Amazon CloudWatch para o Amazon S3. Consulte informações sobre como visualizar métricas do CloudWatch em Uso do console do S3.Se você escolheu replicar objetos criptografados com o AWS KMS, faça o seguinte:
-
Em AWS KMS key para criptografar objetos de destino, especifique sua chave do KMS de uma das seguintes formas:
-
Para escolher em uma lista de chaves do KMS disponíveis, selecione Escolher entre suas AWS KMS keys e escolha sua chave do KMS na lista de chaves disponíveis.
As chaves Chave gerenciada pela AWS (
aws/s3
) e as chaves gerenciadas pelo cliente são exibidas nessa lista. Para ter mais informações sobre chaves gerenciadas pelo cliente, consulte Chaves de clientes e chaves da AWS no Guia do desenvolvedor do AWS Key Management Service. -
Para inserir o nome do recurso da Amazon (ARN) da chave do KMS, selecione Inserir ARN da AWS KMS key e insira o ARN da chave do KMS no campo exibido. Isso criptografa as réplicas no bucket de destino. Você pode encontrar o ARN da chave do KMS no console do IAM
em Chaves de criptografia. -
Para criar uma chave gerenciada pelo cliente no console do AWS KMS, selecione Criar uma chave do KMS.
Para ter mais informações sobre como criar uma AWS KMS key, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service.
Importante
Você só pode usar chaves do KMS habilitadas na mesma Região da AWS que o bucket. Quando você seleciona Escolher de suas chaves do KMS, o console do S3 lista somente 100 chaves do KMS por região. Se você tiver mais de 100 chaves do KMS na mesma região, será possível ver somente as primeiras 100 chaves do KMS no console do S3. Para usar uma chave do KMS que não esteja listada no console, escolha Inserir o ARN da AWS KMS key e insira o ARN de sua chave do KMS.
Ao usar uma AWS KMS key para criptografia no lado do servidor no Amazon S3, você deve escolher uma chave de criptografia do KMS simétrica. O Amazon S3 só é compatível com chaves do KMS de criptografia simétrica, e não com chaves assimétricas do KMS. Para ter mais informações, consulte Identificar chaves do KMS simétricas e assimétricas no Guia do desenvolvedor do AWS Key Management Service.
Para obter mais informações sobre como criar uma AWS KMS key, consulte Criação de chaves no Guia do desenvolvedor do AWS Key Management Service. Para obter mais informações sobre como usar o AWS KMS com o Amazon S3, consulte Usar criptografia do lado do servidor com o AWS KMS (SSE-KMS).
-
-
-
Em Classe de armazenamento de destino, se você quiser replicar seus dados em uma classe de armazenamento específica no destino, escolha Alterar a classe de armazenamento dos objetos replicados. Em seguida, escolha a classe de armazenamento que você deseja usar para os objetos replicados no destino. Se você não selecionar essa opção, a classe de armazenamento para objetos replicados será a mesma classe dos objetos originais.
-
Você tem as seguintes opções adicionais ao definir as Opções de replicação adicionais:
-
Se você quiser ativar o Controle do Tempo de Replicação do S3 (S3 RTC) na configuração de replicação, selecione Controle do Tempo de Replicação (RTC). Para obter mais informações sobre essa opção, consulte Atender aos requisitos de conformidade com o Controle do Tempo de Replicação do S3.
-
Se você quiser habilitar métricas de replicação do S3 na configuração de replicação, selecione Replication metrics and events (Métricas e eventos de replicação). Para obter mais informações, consulte Monitorar a replicação com métricas, notificações de eventos e status.
-
Se quiser habilitar a replicação de marcadores de exclusão na configuração de replicação, selecione Delete marker replication (Excluir replicação de marcador). Para obter mais informações, consulte Replicação de marcadores de exclusão entre intervalos.
-
Se você quiser habilitar a sincronização de modificação de réplica do Amazon S3 em sua configuração de replicação, selecione Replica modification sync (Sincronização de modificação de réplica). Para obter mais informações, consulte Replicação de alterações de metadados com sincronização de modificação de réplica.
nota
Quando você usa métricas de replicação do S3 RTC ou S3, aplicam-se taxas adicionais.
-
-
Para terminar, escolha Save (Salvar).
-
Depois de salvar sua regra, você pode editar, ativar, desativar ou excluir sua regra selecionando sua regra e escolhendo Edit rule (Editar regra).
Para configurar a AWS CLI para configurar a replicação quando os buckets de origem e de destino pertencem à mesma Conta da AWS, faça o seguinte:
-
Crie os buckets de origem e de destino.
-
Habilite o versionamento nos buckets.
-
Crie um perfil do AWS Identity and Access Management (IAM) que dê ao Amazon S3 permissão para replicar objetos.
-
Adicione uma configuração de replicação ao bucket de origem.
Para verificar sua configuração, teste-a.
Como configurar a replicação quando os buckets de origem e de destino pertencem à mesma Conta da AWS
-
Defina um perfil de credenciais para a AWS CLI. Este exemplo usa o nome de perfil
acctA
. Consulte mais informações sobre como configurar perfis de credenciais e como usar perfis nomeados em Configuration and credential file settings no Guia do usuário da AWS Command Line Interface.Importante
O perfil que você usar para este exemplo deve ter as permissões necessárias. Por exemplo, na configuração da replicação, especifique a função do IAM que o Amazon S3 pode assumir. Você só poderá fazer isso se o perfil usado tiver a permissão
iam:PassRole
. Consulte mais informações em Conceda permissões a um usuário para passar um perfil para um AWS service (Serviço da AWS) no Guia do usuário do IAM. Se você usar credenciais de administrador para criar um perfil nomeado, poderá executar todas as tarefas. -
Crie um bucket de origem e habilite o versionamento nele usando os comandos da AWS CLI a seguir. Para usar esses comandos, substitua
por suas próprias informações.user input placeholders
O comando
create-bucket
a seguir cria um bucket de origem chamado
na região Leste dos EUA (N. da Virgínia) (amzn-s3-demo-source-bucket
us-east-1
):aws s3api create-bucket \ --bucket
amzn-s3-demo-source-bucket
\ --regionus-east-1
\ --profileacctA
O comando
put-bucket-versioning
a seguir habilita o Versionamento do S3 no bucket do
:amzn-s3-demo-source-bucket
aws s3api put-bucket-versioning \ --bucket
amzn-s3-demo-source-bucket
\ --versioning-configuration Status=Enabled \ --profileacctA
-
Crie um bucket de destino e habilite o versionamento nele usando os comandos da AWS CLI a seguir. Para usar esses comandos, substitua
por suas próprias informações.user input placeholders
nota
Para fazer a configuração de uma replicação quando os buckets de origem e de destino estiverem na mesma Conta da AWS, use o mesmo perfil para os buckets de origem e destino. Este exemplo usa
acctA
.Para testar a configuração da replicação quando os buckets pertencerem a diferentes contas da Contas da AWS, especifique diferentes perfis para cada conta. Por exemplo, use um perfil
acctB
para o bucket de destino.O comando
create-bucket
a seguir cria um bucket de destino chamado
na região Oeste dos EUA (Oregon) (amzn-s3-demo-destination-bucket
us-west-2
):aws s3api create-bucket \ --bucket
amzn-s3-demo-destination-bucket
\ --regionus-west-2
\ --create-bucket-configuration LocationConstraint=us-west-2
\ --profileacctA
O comando
put-bucket-versioning
a seguir habilita o Versionamento do S3 no bucket do
:amzn-s3-demo-destination-bucket
aws s3api put-bucket-versioning \ --bucket
amzn-s3-demo-destination-bucket
\ --versioning-configuration Status=Enabled \ --profileacctA
-
Crie uma função do IAM. Você especifica essa função na configuração da replicação que adiciona ao bucket de
origem
posteriormente. O Amazon S3 assume essa função para replicar objetos em seu nome. A função do IAM é criada em duas etapas:-
Crie uma função.
-
Anexar uma política de permissões à função.
-
Crie a função do IAM.
-
Copie a política de confiança a seguir e salve-a em um arquivo chamado
s3-role-trust-policy.json
no diretório atual do computador local. Essa política concede à entidade principal do serviço Amazon S3 permissões para assumir o perfil.{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
-
Execute o comando a seguir para criar uma função.
$
aws iam create-role \ --role-namereplicationRole
\ --assume-role-policy-document file://s3-role-trust-policy.json
\ --profileacctA
-
-
Anexar uma política de permissões à função.
-
Copie a política de permissões a seguir e salve-a em um arquivo com o nome
s3-role-permissions-policy.json
no diretório atual do computador local. Essa política concede permissões para várias ações de bucket e objetos do Amazon S3.{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging" ], "Resource":[ "arn:aws:s3:::
amzn-s3-demo-source-bucket
/*" ] }, { "Effect":"Allow", "Action":[ "s3:ListBucket", "s3:GetReplicationConfiguration" ], "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
/*" } ] } -
Execute o comando a seguir para criar uma política e ligá-la à função. Substitua os
por suas próprias informações.user input placeholders
$
aws iam put-role-policy \ --role-namereplicationRole
\ --policy-document file://s3-role-permissions-policy.json
\ --policy-namereplicationRolePolicy
\ --profileacctA
-
-
-
Adicione uma configuração de replicação ao bucket de origem.
-
Embora a API do Amazon S3 exija que você especifique a configuração da replicação como XML, a AWS CLI requer que você especifique a configuração de replicação como JSON. Salve o JSON a seguir em um arquivo chamado
replication.json
no diretório local do seu computador.{ "Role": "
IAM-role-ARN
", "Rules": [ { "Status": "Enabled", "Priority": 1, "DeleteMarkerReplication": { "Status": "Disabled" }, "Filter" : { "Prefix": "Tax
"}, "Destination": { "Bucket": "arn:aws:s3:::amzn-s3-demo-destination-bucket
" } } ] } -
Atualize o JSON substituindo os valores de
eamzn-s3-demo-destination-bucket
por suas próprias informações. Salve as alterações.IAM-role-ARN
-
Execute o comando
put-bucket-replication
a seguir para adicionar a configuração de replicação ao bucket de origem. Dê um nome ao bucket de origem:$
aws s3api put-bucket-replication \ --replication-configuration file://replication.json
\ --bucketamzn-s3-demo-source-bucket
\ --profileacctA
Para recuperar a configuração de replicação, use o comando
get-bucket-replication
:$
aws s3api get-bucket-replication \ --bucketamzn-s3-demo-source-bucket
\ --profileacctA
-
-
Teste a configuração no console do Amazon S3, seguindo estas etapas:
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 de uso geral, selecione o bucket de origem.
-
No bucket de origem, crie uma pasta chamada
.Tax
-
Adicione objetos de amostra à pasta
no bucket de origem.Tax
nota
O tempo necessário para o Amazon S3 replicar um objeto depende do tamanho do objeto. Para obter informações sobre como ver o status da replicação, consulte Obtenção de informações sobre o status da replicação.
No bucket de
destino
, verifique o seguinte:-
Se o Amazon S3 replicou os objetos.
-
Se os objetos são réplicas. Na guia Propriedades dos objetos, role para baixo até a seção Visão geral do gerenciamento de objetos. Em Configurações de gerenciamento, veja o valor em Status da replicação. Esse valor deve ser definido como
REPLICA
. -
Se as réplicas pertencem à conta do bucket de origem. É possível verificar a propriedade do objeto na guia Permissões dos objetos.
Se os buckets de origem e de destino pertencerem a contas diferentes, você poderá adicionar uma configuração opcional para instruir o Amazon S3 a alterar a propriedade da réplica à conta de destino. Para ver um exemplo, consulte Como alterar o proprietário da réplica.
-
Use os exemplos de código a seguir para adicionar uma configuração de replicação ao bucket com AWS SDK for Java e AWS SDK for .NET, respectivamente.