As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Automatizar cópias de snapshots entre contas com o Data Lifecycle Manager
A automação de cópias de snapshots entre contas permite que você copie seus EBS snapshots da Amazon para regiões específicas em uma conta isolada e criptografe esses snapshots com uma chave de criptografia. Isso permite que você se proteja contra perda de dados no caso de sua conta ser comprometida.
A automatização de cópias de snapshots entre contas envolve duas contas:
-
Conta de origem—A conta de origem é a conta que cria e compartilha os snapshots com a conta de destino. Nessa conta, você deve criar uma política de EBS instantâneos que crie instantâneos em intervalos definidos e os compartilhe com outras contas. AWS
-
Contade destino—A conta de destino é a conta com a conta de destino com a qual os snapshots são compartilhados e é a conta que cria cópias dos instantâneos compartilhados. Nesta conta, crie uma política de eventos de cópia entre contas que copia automaticamente snapshots compartilhados com ela por uma ou mais contas de origem especificadas.
Criar políticas de cópia de snapshot entre contas
Para preparar as contas de origem e de destino para cópia de snapshot entre contas, você precisa executar as seguintes etapas:
Na conta de origem, crie uma política de EBS instantâneos que criará os instantâneos e os compartilhará com as contas de destino necessárias.
Ao criar a política, certifique-se de habilitar o compartilhamento entre contas e de especificar as AWS contas de destino com as quais compartilhar os instantâneos. Estas são as contas com as quais os snapshots devem ser compartilhados. Se você estiver compartilhando instantâneos criptografados, deverá dar permissão às contas de destino selecionadas para usar a KMS chave usada para criptografar o volume de origem. Para obter mais informações, consulte Etapa 2: Compartilhe a chave gerenciada pelo cliente (Conta de origem).
Você só pode compartilhar snapshots não criptografados ou criptografados usando uma chave gerenciada pelo cliente gerenciada pelo cliente. Você não pode compartilhar instantâneos criptografados com a KMS chave de EBS criptografia padrão. Se você compartilhar instantâneos criptografados, também deverá compartilhar a KMS chave usada para criptografar o volume de origem com as contas de destino. Para obter mais informações, consulte Permitir que usuários de outras contas usem uma KMS chave no Guia do AWS Key Management Service desenvolvedor.
Para obter mais informações sobre a criação de uma política de EBS snapshot, consulteCrie uma política personalizada do Amazon Data Lifecycle Manager para snapshots EBS.
Use um dos métodos a seguir para criar a política de EBS snapshot.
Se você estiver compartilhando instantâneos criptografados, deverá conceder à IAM função e às AWS
contas de destino (selecionadas na etapa anterior) permissões para usar a chave gerenciada pelo cliente que foi usada para criptografar o volume de origem.
Execute esta etapa apenas se você estiver compartilhando snapshots criptografados. Se você estiver compartilhando snapshots não criptografados, pule esta etapa.
- Console
-
-
Abra o AWS KMS console em https://console.aws.amazon.com/kms.
-
Para alterar o Região da AWS, use o seletor de região no canto superior direito da página.
-
No painel de navegação, escolha Chave gerenciada pelo cliente e selecione a KMS chave que você precisa compartilhar com as contas de destino.
Anote a KMS chaveARN, você precisará dela mais tarde.
-
Na guia Key policy (Política de chaves), role para baixo até a seção Key users (Usuários chave). Escolha Adicionar, insira o nome da IAM função que você selecionou na etapa anterior e escolha Adicionar.
-
Na guia Key policy (Política de chaves), role para a seção Other AWS accounts (Outras contas da ). Escolha Adicionar outras AWS contas e, em seguida, adicione todas as AWS contas de destino com as quais você escolheu compartilhar os instantâneos na etapa anterior.
-
Escolha Salvar alterações.
- Command line
-
Use o get-key-policycomando para recuperar a política de chaves atualmente anexada à KMS chave.
Por exemplo, o comando a seguir recupera a política de chaves de uma KMS chave com um ID de 9d5e2b3d-e410-4a27-a958-19e220d83a1e
e a grava em um arquivo chamadosnapshotKey.json
.
$
aws kms get-key-policy \
--policy-name default \
--key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e
\
--query Policy \
--output text > snapshotKey.json
Abra a política de chaves usando seu editor de texto preferido. Adicione a ARN IAM função que você especificou ao criar a política de snapshot e a ARNs das contas de destino com as quais compartilhar a KMS chave.
Por exemplo, na política a seguir, adicionamos ARN a IAM função padrão e a conta raiz para a conta ARN de destino 222222222222.
Para seguir o princípio de menor privilégio, não permita acesso total a kms:CreateGrant
. Em vez disso, use a chave de kms:GrantIsForAWSResource
condição para permitir que o usuário crie concessões na KMS chave somente quando a concessão for criada em nome do usuário por um AWS serviço, conforme mostrado no exemplo a seguir.
{
"Sid" : "Allow use of the key",
"Effect" : "Allow",
"Principal" : {
"AWS" : [
"arn:aws:iam::111111111111:role/service-role/AWSDataLifecycleManagerDefaultRole
",
"arn:aws:iam::222222222222:root
"
]
},
"Action" : [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource" : "*"
},
{
"Sid" : "Allow attachment of persistent resources",
"Effect" : "Allow",
"Principal" : {
"AWS" : [
"arn:aws:iam::111111111111:role/service-role/AWSDataLifecycleManagerDefaultRole
",
"arn:aws:iam::222222222222:root
"
]
},
"Action" : [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource" : "*",
"Condition" : {
"Bool" : {
"kms:GrantIsForAWSResource" : "true"
}
}
}
Salve e feche o arquivo. Em seguida, use o put-key-policycomando para anexar a política de chaves atualizada à KMS chave.
$
aws kms put-key-policy \
--policy-name default \
--key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e
\
--policy file://snapshotKey.json
Na conta de destino, crie uma política de eventos de cópia entre contas que copiará automaticamente os snapshots compartilhados pelas contas de origem necessárias.
Essa política só é executada na conta de destino quando uma das contas de origem especificadas compartilha o snapshot com a conta.
Use um dos seguintes métodos para criar a política de eventos de cópia entre contas.
- Console
-
Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, selecione Elastic Block Store, Lifecycle Manager ((Gerenciador de ciclo de vida) e Create snapshot lifecycle policy (Criar política de ciclo de vida de snapshot).
-
Na tela Select policy type (Selecionar tipo de política), escolha Cross-account copy event policy (Cópia de política de eventos entre contas) e depois Next (Próximo).
-
Em Policy description (Descrição da política), insira uma breve descrição da política.
-
Em Policy tags (Etiquetas de políticas), adicione as etiquetas a serem aplicadas na política de ciclo de vida. É possível usar essas etiquetas para identificar e categorizar suas políticas.
-
Na seção Event settings (Configurações de evento), defina o evento de compartilhamento de snapshots que fará com que a política seja executada. Faça o seguinte:
-
Em Contas de compartilhamento, especifique as AWS contas de origem das quais você deseja copiar os instantâneos compartilhados. Escolha Adicionar conta, insira o ID da AWS conta de 12 dígitos e escolha Adicionar.
-
Em Filter by description (Filtrar por descrição), insira a descrição necessária do snapshot usando uma expressão regular. Somente os snapshots que são compartilhados pelas contas de origem especificadas e que tenham descrições que correspondam ao filtro especificado são copiados pela política. Para obter mais informações, consulte Especificar filtros de descrição de snapshot.
-
Em IAMfunção, escolha a IAM função que tem permissões para realizar ações de cópia instantânea. Para usar a função padrão fornecida pelo Amazon Data Lifecycle Manager, escolha Default role (Função padrão). Como alternativa, para usar um IAM papel personalizado que você criou anteriormente, escolha Escolher outro papel e selecione o papel a ser usado.
Se você estiver copiando instantâneos criptografados, deverá conceder à IAM função selecionada permissões para usar a KMS chave de criptografia usada para criptografar o volume de origem. Da mesma forma, se você estiver criptografando o snapshot na região de destino usando uma KMS chave diferente, deverá conceder permissão à IAM função para usar a chave de destinoKMS. Para obter mais informações, consulte Etapa 4: permitir que a IAM função use as KMS chaves necessárias (conta de destino).
-
Na seção Copy action (Copiar ação), defina as ações de cópia de snapshots que a política deve executar quando for ativada. A política pode copiar snapshots para até três regiões. Especifique uma regra de cópia separada para cada região de destino. Para cada regra que você adicionar, faça o seguinte:
-
Para Name (Nome), insira um nome descritivo para a ação de cópia.
-
Em Target Region (Região de destino), selecione a região para a qual deseja copiar os snapshots.
-
Em Expire, especifique por quanto tempo manter as cópias de snapshot na região de destino após a criação.
-
Para criptografar a cópia do snapshot, Em Encryption (Criptografia), selecione Enable encryption (Habilitar criptografia). Se o snapshot de origem estiver criptografado ou se a criptografia por padrão estiver habilitada para a sua conta, a cópia do snapshot será sempre criptografada, mesmo que você não habilite a criptografia aqui. Se o snapshot de origem não estiver criptografado e a criptografia por padrão não estiver habilitada para sua conta, será possível optar por ativar ou desativar a criptografia. Se você ativar a criptografia, mas não especificar uma KMS chave, os instantâneos serão criptografados usando a KMS chave de criptografia padrão em cada região de destino. Se você especificar uma KMS chave para a região de destino, deverá ter acesso à KMS chave.
-
Para adicionar outras ações de cópia de snapshot, escolha Add New Regions (Adicionar novas regiões).
-
Em Policy status after creation (Status da política após a criação), selecione Enable policy (Habilitar política) para iniciar as execuções da política no próximo horário agendado ou Disable policy (Desabilitar política) para impedir que a política seja executada. Se você não habilitar a política agora, ela não começará a copiar snapshots até que você a ative manualmente após a criação.
-
Escolha Create policy (Criar política).
- Command line
-
Use o create-lifecycle-policycomando para criar uma política. Para criar uma política de eventos de cópia entre contas, para PolicyType
, especifique EVENT_BASED_POLICY
.
Por exemplo, o comando a seguir cria uma política de eventos de cópia entre contas na conta de destino 222222222222
. A política copia snapshots que são compartilhados pela conta de origem 111111111111
. A política copia snapshots para sa-east-1
e eu-west-2
. Os snapshots copiados para sa-east-1
são criptografados e retidos por 3 dias. Os instantâneos copiados para eu-west-2
são criptografados usando uma KMS chave 8af79514-350d-4c52-bac8-8985e84171c7
e são retidos por 1 mês. A política usa a IAM função padrão.
$
aws dlm create-lifecycle-policy \
--description "Copy policy"
\
--state ENABLED \
--execution-role-arn arn:aws:iam::222222222222:role/service-role/AWSDataLifecycleManagerDefaultRole
\
--policy-details file://policyDetails.json
O exemplo a seguir mostra o conteúdo do arquivo policyDetails.json
.
{
"PolicyType" : "EVENT_BASED_POLICY",
"EventSource" : {
"Type" : "MANAGED_CWE",
"Parameters": {
"EventType" : "shareSnapshot",
"SnapshotOwner": ["111111111111
"]
}
},
"Actions" : [{
"Name" :"Copy Snapshot to Sao Paulo and London",
"CrossRegionCopy" : [{
"Target" : "sa-east-1
",
"EncryptionConfiguration" : {
"Encrypted" : false
},
"RetainRule" : {
"Interval" : 3
,
"IntervalUnit" : "DAYS
"
}
},
{
"Target" : "eu-west-2
",
"EncryptionConfiguration" : {
"Encrypted" : true
,
"CmkArn" : "arn:aws:kms:eu-west-2:222222222222:key/8af79514-350d-4c52-bac8-8985e84171c7
"
},
"RetainRule" : {
"Interval" : 1
,
"IntervalUnit" : "MONTHS
"
}
}]
}]
}
Se a solicitação for bem-sucedida, o comando retornará o ID da política recém-criada. O seguinte é um exemplo de saída.
{
"PolicyId": "policy-9876543210abcdef0"
}
Se você estiver copiando instantâneos criptografados, deverá conceder à IAM função (que você selecionou na etapa anterior) permissões para usar a chave gerenciada pelo cliente que foi usada para criptografar o volume de origem.
Execute esta etapa somente se você estiver copiando snapshots criptografados. Se você estiver copiando snapshots não criptografados, ignore esta etapa.
Use um dos métodos a seguir para adicionar as políticas necessárias à IAM função.
- Console
-
-
Abra o console do IAM em https://console.aws.amazon.com/iam/.
-
No painel de navegação, selecione Settings (Configurações). Pesquise e selecione a IAM função que você selecionou ao criar a política de eventos de cópia entre contas na etapa anterior. Se você optar por usar a função padrão, a função será nomeada AWSDataLifecycleManagerDefaultRole.
-
Escolha Adicionar política em linha e, em seguida, selecione a JSONguia.
-
Substitua a política existente pela seguinte e especifique a ARN KMS chave usada para criptografar os volumes de origem e que foi compartilhada com você pela conta de origem na Etapa 2.
Se você estiver copiando de várias contas de origem, deverá especificar a KMS chave correspondente ARN de cada conta de origem.
No exemplo a seguir, a política concede à IAM função permissão para usar a KMS chave1234abcd-12ab-34cd-56ef-1234567890ab
, que foi compartilhada pela conta de origem111111111111
, e a KMS chave4567dcba-23ab-34cd-56ef-0987654321yz
, que existe na conta de destino222222222222
.
Para seguir o princípio de menor privilégio, não permita acesso total a kms:CreateGrant
. Em vez disso, use a chave de kms:GrantIsForAWSResource
condição para permitir que o usuário crie concessões na KMS chave somente quando a concessão for criada em nome do usuário por um AWS serviço, conforme mostrado no exemplo a seguir.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:RevokeGrant",
"kms:CreateGrant",
"kms:ListGrants"
],
"Resource": [
"arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab
",
"arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz
"
],
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": [
"arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab
",
"arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz
"
]
}
]
}
-
Escolha Review policy (Revisar política)
-
Para Name (Nome), insira um nome descritivo para a política e escolha Create policy (Criar política).
- Command line
-
Usando seu editor de texto preferido, crie um novo JSON arquivo chamadopolicyDetails.json
. Adicione a política a seguir e especifique a ARN KMS chave usada para criptografar os volumes de origem e que foi compartilhada com você pela conta de origem na Etapa 2.
Se você estiver copiando de várias contas de origem, deverá especificar a KMS chave correspondente ARN de cada conta de origem.
No exemplo a seguir, a política concede à IAM função permissão para usar a KMS chave1234abcd-12ab-34cd-56ef-1234567890ab
, que foi compartilhada pela conta de origem111111111111
, e a KMS chave4567dcba-23ab-34cd-56ef-0987654321yz
, que existe na conta de destino222222222222
.
Para seguir o princípio de menor privilégio, não permita acesso total a kms:CreateGrant
. Em vez disso, use a chave de kms:GrantIsForAWSResource
condição para permitir que o usuário crie concessões na KMS chave somente quando a concessão for criada em nome do usuário por um AWS serviço, conforme mostrado no exemplo a seguir.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:RevokeGrant",
"kms:CreateGrant",
"kms:ListGrants"
],
"Resource": [
"arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab
",
"arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz
"
],
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": [
"arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab
",
"arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz
"
]
}
]
}
Salve e feche o arquivo. Em seguida, use o put-role-policycomando para adicionar a política à IAM função.
Por exemplo
$
aws iam put-role-policy \
--role-name AWSDataLifecycleManagerDefaultRole
\
--policy-name CopyPolicy
\
--policy-document file://AdminPolicy.json
Especificar filtros de descrição de snapshot
Quando você cria a política de cópia de snapshot na conta de destino, especifique um filtro de descrição de snapshot. O filtro de descrição do snapshot permite especificar um nível adicional de filtragem que permite controlar quais snapshots são copiados pela política. Isso significa que um snapshot só será copiado pela política se for compartilhado por uma das contas de origem especificadas e tiver uma descrição de snapshot que corresponda ao filtro especificado. Em outras palavras, se um snapshot for compartilhado por uma das contas de curso especificadas, mas não tiver uma descrição que corresponda ao filtro especificado, ele não será copiado pela política.
A descrição do filtro de snapshot deve ser especificada usando uma expressão regular. É um campo obrigatório ao criar políticas de eventos de cópia entre contas usando o console e a linha de comando. A seguir estão exemplos de expressões regulares que podem ser usadas:
-
.*
—Esse filtro corresponde a todas as descrições de snapshot. Se você usar essa expressão, a política copiará todos os snapshots compartilhados por uma das contas de origem especificadas.
-
Created for policy: policy-0123456789abcdef0.*
—Este filtro corresponde apenas aos snapshots criados por uma política com um ID de policy-0123456789abcdef0
. Se você usar uma expressão como esta, apenas snapshots que são compartilhados com sua conta por uma das contas de origem especificadas e que foram criados por uma política com o ID especificado serão copiados pela política.
-
.*production.*
—Esse filtro corresponde a qualquer snapshot que tenha a palavra production
em qualquer lugar em sua descrição. Se você usar essa expressão, a política copiará todos os snapshots compartilhados por uma das contas de origem especificadas e que tenham o texto especificado em sua descrição.
Considerações sobre políticas de cópia de snapshot entre contas
As seguintes considerações se aplicam às políticas de eventos de cópia entre contas:
-
Você só pode copiar snapshots não criptografados ou criptografados usando uma chave gerenciada pelo cliente.
-
É possível criar uma política de eventos de cópia entre contas para copiar snapshots compartilhados fora do Amazon Data Lifecycle Manager.
-
Se você quiser criptografar instantâneos na conta de destino, a IAM função selecionada para a política de eventos de cópia entre contas deverá ter permissão para usar a chave necessária. KMS
Recursos adicionais
Para obter mais informações, consulte o blog Automatizando a cópia de EBS snapshots criptografados da Amazon entre AWS contas AWS e armazenamento.