Automatizar copias instantáneas entre cuentas con Data Lifecycle Manager - Amazon EBS

Automatizar copias instantáneas entre cuentas con Data Lifecycle Manager

La automatización de copias instantáneas entre cuentas permite copiar las instantáneas de Amazon EBS en regiones específicas de una cuenta aislada y cifrarlas con una clave de cifrado. Esto permite que pueda protegerse contra la pérdida de datos en caso de que su cuenta se vea comprometida.

La automatización de copias instantáneas entre cuentas implica dos cuentas:

  • Cuenta de origen—La cuenta de origen es la cuenta que crea y comparte las instantáneas con la cuenta de destino. En esta cuenta, debe crear una política de instantáneas de EBS que cree instantáneas a intervalos establecidos y, a continuación, las comparta con otras cuentas de AWS.

  • Cuenta de destino—La cuenta de destino es la cuenta con la cuenta de destino con la que se comparten las instantáneas y es la que crea copias de las instantáneas compartidas. En esta cuenta, debe crear una política de eventos de copia entre cuentas que copia automáticamente instantáneas compartidas con ella por una o varias cuentas de origen especificadas.

Crear políticas de copia de instantáneas entre cuentas

A fin de preparar las cuentas de origen y destino para la copia instantánea entre cuentas, debe realizar los siguientes pasos:

Temas

    En la cuenta de origen, genere una política de instantáneas de EBS que creará las instantáneas y compártalas con las cuentas de destino necesarias.

    Cuando cree la política, asegúrese de habilitar el uso compartido entre cuentas y de especificar las cuentas de AWS de destino con las que compartirá las instantáneas. Estas son las cuentas con las que se van a compartir las instantáneas. Si comparte instantáneas cifradas, debe conceder permiso a las cuentas de destino seleccionadas para utilizar la Clave de KMS usada con el fin de cifrar el volumen de origen. Para obtener más información, consulte Paso 2: compartir la Clave administrada por el cliente (cuenta de origen).

    nota

    Solo puede compartir instantáneas sin cifrar o cifradas mediante una Clave administrada por el cliente. No puede compartir instantáneas cifradas con la Clave de KMS de cifrado de EBS predeterminada. Si comparte instantáneas cifradas, también debe compartir la Clave de KMS que se utilizó para cifrar el volumen de origen con las cuentas de destino. Para obtener más información, consulte Permitir que los usuarios de otras cuentas utilicen una clave de KMS en la Guía para desarrolladores de AWS Key Management Service.

    Para obtener más información acerca de la creación de una política de instantáneas de EBS, consulte Crear una política personalizada de Amazon Data Lifecycle Manager para instantáneas de EBS.

    Utilice uno de los métodos siguientes para crear la política de instantáneas de EBS.

    Si comparte instantáneas cifradas, debe otorgar al rol de IAM y a las cuentas de AWS de destino (que seleccionó en el paso anterior) los permisos necesarios para usar la clave administrada por el cliente que se utilizó para cifrar el volumen de origen.

    nota

    Realice este paso solo si va a compartir instantáneas cifradas. Si comparte instantáneas sin cifrar, omita este paso.

    Console
    1. Abra la consola de AWS KMS en https://console.aws.amazon.com/kms.

    2. Para cambiar la Región de AWS, utilice el Selector de regiones ubicado en la esquina superior derecha de la página.

    3. En el panel de navegación, elija Customer managed key (Clave administradas por el cliente) y, a continuación, seleccione la clave de KMS que debe compartir con las cuentas de destino.

      Tome nota del ARN de la Clave de KMS, lo necesitará más tarde.

    4. En la pestaña Política de claves, desplácese hacia abajo hasta la sección Usuarios de claves. Elija Add (Agregar), escriba el nombre del rol de IAM seleccionado en el paso anterior y, a continuación, elija Add (Agregar).

    5. En la pestaña Políticas de claves, desplácese hacia abajo hasta la sección Otras cuentas deAWS. Elija Agregar otras cuentas de AWS y, a continuación, agregue todas las cuentas de AWS de destino con las que haya elegido compartir las instantáneas en el paso anterior.

    6. Elija Save changes.

    Command line

    Utilice el comando get-key-policy para recuperar la política de clave que está actualmente asociada a la Clave de KMS.

    Por ejemplo, el comando siguiente recupera la política de clave de una Clave de KMS con un ID de 9d5e2b3d-e410-4a27-a958-19e220d83a1e y la escribe en un archivo denominado snapshotKey.json.

    $ aws kms get-key-policy \ --policy-name default \ --key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e \ --query Policy \ --output text > snapshotKey.json

    Abra la política de claves con el editor de texto preferido. Agregue el ARN del rol de IAM que especificó al crear la política de instantáneas y los ARN de las cuentas de destino con las que compartir la Clave de KMS.

    Por ejemplo, en la siguiente política, agregamos el ARN del rol de IAM predeterminado y el ARN de la cuenta raíz para la cuenta de destino 222222222222.

    sugerencia

    Para seguir el principio de privilegios mínimos, no permita el acceso completo a kms:CreateGrant. En su lugar, use la clave de condición kms:GrantIsForAWSResource para permitir al usuario crear concesiones en la clave de KMS solo cuando un servicio de AWS haya creado la concesión en nombre del usuario, como se muestra en el siguiente ejemplo.

    { "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" } } }

    Guarde y cierre el archivo. A continuación, utilice el comando put-key-policy para asociar la política de clave actualizada a la Clave de KMS.

    $ aws kms put-key-policy \ --policy-name default \ --key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e \ --policy file://snapshotKey.json

    En la cuenta de destino, debe crear una política de eventos de copia entre cuentas que copiará automáticamente instantáneas compartidas por las cuentas de origen necesarias.

    Esta política solo se ejecuta en la cuenta de destino cuando una de las cuentas de origen especificadas comparte instantáneas con la cuenta.

    Utilice uno de los métodos siguientes para crear la política de eventos de copia entre cuentas.

    Console
    1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

    2. En el panel de navegación, elija Elastic Block Store, Lifecycle Manager (Administrador de ciclo de vida) y, a continuación, Create lifecycle policy (Crear política de ciclo de vida).

    3. En la pantalla Select policy type (Seleccionar tipo de política), elija Cross-account copy event policy (Política de eventos de copias entre cuentas) y, luego, seleccione Next (Siguiente).

    4. En Policy description (Descripción de la política), escriba una breve descripción de la política.

    5. En Policy tags (Etiquetas de políticas), agregue las etiquetas que se aplicarán a la política de ciclo de vida. Puede utilizar estas etiquetas para identificar y clasificar las políticas.

    6. En la sección Event settings (Configuración de eventos), defina el evento de uso compartido de instantáneas que provocará la ejecución de la política. Haga lo siguiente:

      1. En Sharing accounts (Uso compartido de cuentas), especifique las cuentas de AWS de origen a partir de las cuales desea copiar las instantáneas compartidas. Seleccione Add account (Agregar cuenta), ingrese el ID de 12 dígitos de la cuenta de AWS y, a continuación, elija Add (Agregar).

      2. En Filter by description (Filtrar por descripción), ingrese la descripción requerida de la instantánea con una expresión regular. La política copia solo las instantáneas compartidas por las cuentas de origen especificadas y que tienen descripciones que coinciden con el filtro especificado. Para obtener más información, consulte Especificar filtros de descripción de instantáneas.

    7. En IAM rol (Rol de IAM), elija el rol de IAM que tenga permisos para realizar acciones de copia de instantáneas. Para utilizar el rol predeterminado proporcionado por Amazon Data Lifecycle Manager, elija Default role (Rol predeterminado). De forma alternativa, para usar un rol de IAM personalizado que haya creado anteriormente, elija Choose another role (Elegir otro rol) y, luego, seleccione el rol que va a utilizar.

      Si copia instantáneas cifradas, debe conceder permisos al rol de IAM seleccionado para utilizar la Clave de KMS de cifrado usada con el fin de cifrar el volumen de origen. Del mismo modo, si cifra la instantánea en la región de destino mediante otra Clave de KMS, debe conceder permiso al rol de IAM para usar la Clave de KMS de destino. Para obtener más información, consulte Paso 4: permitir que el rol de IAM use la Claves de KMS requerida (cuenta de destino).

    8. En la sección Copy action (Copiar acción), defina las acciones de copia de instantáneas que la política debe realizar cuando está activada. La política puede copiar instantáneas en hasta tres regiones. Debe especificar una regla de copia independiente para cada región de destino. Realice lo siguiente para cada regla que agregue:

      1. En Name (Nombre), escriba un nombre descriptivo para la acción de copia.

      2. En Target Region (Región de destino), seleccione la región en la que desea copiar las instantáneas.

      3. En Expire (Vencimiento), especifique cuánto tiempo se retendrán las copias de instantáneas en la región de destino después de su creación.

      4. Para cifrar la copia de la instantánea, en Encryption (Cifrado), seleccione Enable encryption (Habilitar cifrado). Si la instantánea fuente se encuentra cifrada o si el cifrado de forma predeterminada se encuentra habilitado para su cuenta, siempre se cifra la copia de instantánea, incluso si no habilita el cifrado aquí. Si la instantánea de origen no está cifrada y el cifrado de forma predeterminada no está habilitado para su cuenta, puede elegir habilitar o deshabilitar el cifrado. Si habilita el cifrado, pero no especifica una Clave de KMS, las instantáneas se cifran mediante la Clave de KMS de cifrado predeterminada en cada región de destino. Si especifica una Clave de KMS para la región de destino, debe tener acceso a la Clave de KMS.

    9. Para agregar acciones adicionales de copia de instantáneas, elija Add new Regions (Agregar regiones nuevas).

    10. Para Policy status after creation (Estado de la política después de su creación), elija Enable policy (Habilitar política) para iniciar las ejecuciones de la política a la siguiente hora programada o Disable policy (Deshabilitar política) para evitar que se ejecute la política. Si no habilita la política ahora, no se comenzarán a copiar instantáneas hasta que la habilite de forma manual después de la creación.

    11. Elija Create Policy.

    Command line

    Utilice el comando create-lifecycle-policy (crear política de ciclo de vida) para crear una política. Para crear una política de eventos de copia entre cuentas, para PolicyType, especifique EVENT_BASED_POLICY.

    Por ejemplo, el siguiente comando crea una política de eventos de copia entre cuentas en la cuenta de destino 222222222222. La política copia instantáneas compartidas por la cuenta de origen 111111111111. La política copia instantáneas en sa-east-1 y eu-west-2. Las instantáneas copiadas en sa-east-1 no se cifran y se retienen durante 3 días. Las instantáneas copiadas en eu-west-2 se cifran mediante la Clave de KMS 8af79514-350d-4c52-bac8-8985e84171c7 y se conservan durante 1 mes. La política utiliza el rol de IAM predeterminado.

    $ 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

    A continuación se muestra el contenido del archivo 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" } }] }] }

    Si se ejecuta correctamente, el comando devuelve el ID de la política recién creada. A continuación, se muestra un ejemplo del resultado.

    { "PolicyId": "policy-9876543210abcdef0" }

    Si copia instantáneas cifradas, debe conceder permisos al rol de IAM (que seleccionó en el paso anterior) para utilizar la Clave administrada por el cliente que se usó con el fin de cifrar el volumen de origen.

    nota

    Realice este paso sólo si copia instantáneas cifradas. Si copia instantáneas sin cifrar, omita este paso.

    Utilice uno de los siguientes métodos para agregar las políticas necesarias al rol de IAM.

    Console
    1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

    2. En el panel de navegación, seleccione Roles (Roles). Busque y elija el rol de IAM que seleccionó al crear la política de eventos de copia entre cuentas en el paso anterior. Si elige utilizar el rol predeterminado, éste se denomina AWSDataLifecycleManagerDefaultRole.

    3. Elija Add inline policy (Agregar política en línea) y, a continuación, seleccione la pestaña JSON.

    4. Sustituya la política existente por la siguiente y especifique el ARN de la clave de KMS que se utilizó para cifrar los volúmenes de origen y que la cuenta de origen compartió con usted en el paso 2.

      nota

      Si va a copiar desde varias cuentas de origen, debe especificar el ARN de la clave de KMS correspondiente de cada cuenta de origen.

      En el ejemplo siguiente, la política concede permiso al rol de IAM para usar la Clave de KMS 1234abcd-12ab-34cd-56ef-1234567890ab, que fue compartida por la cuenta de origen 111111111111 y la Clave de KMS 4567dcba-23ab-34cd-56ef-0987654321yz, que existe en la cuenta de destino 222222222222.

      sugerencia

      Para seguir el principio de privilegios mínimos, no permita el acceso completo a kms:CreateGrant. En su lugar, use la clave de condición kms:GrantIsForAWSResource para permitir al usuario crear concesiones en la clave de KMS solo cuando un servicio de AWS haya creado la concesión en nombre del usuario, como se muestra en el siguiente ejemplo.

      { "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" ] } ] }
    5. Elija Review policy

    6. En Name (Nombre), escriba un nombre descriptivo para la política y, a continuación, elija Create policy (Crear política).

    Command line

    Con el uso de su editor de texto preferido, cree un nuevo archivo JSON llamado policyDetails.json. Agregue la siguiente política y especifique el ARN de la clave de KMS que se utilizó para cifrar los volúmenes de origen y que la cuenta de origen compartió con usted en el paso 2.

    nota

    Si va a copiar desde varias cuentas de origen, debe especificar el ARN de la clave de KMS correspondiente de cada cuenta de origen.

    En el ejemplo siguiente, la política concede permiso al rol de IAM para usar la Clave de KMS 1234abcd-12ab-34cd-56ef-1234567890ab, que fue compartida por la cuenta de origen 111111111111 y la Clave de KMS 4567dcba-23ab-34cd-56ef-0987654321yz, que existe en la cuenta de destino 222222222222.

    sugerencia

    Para seguir el principio de privilegios mínimos, no permita el acceso completo a kms:CreateGrant. En su lugar, use la clave de condición kms:GrantIsForAWSResource para permitir al usuario crear concesiones en la clave de KMS solo cuando un servicio de AWS haya creado la concesión en nombre del usuario, como se muestra en el siguiente ejemplo.

    { "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" ] } ] }

    Guarde y cierre el archivo. A continuación, utilice el comando put-role-policy (colocar una política de rol) para agregar la política al rol de IAM.

    Por ejemplo

    $ aws iam put-role-policy \ --role-name AWSDataLifecycleManagerDefaultRole \ --policy-name CopyPolicy \ --policy-document file://AdminPolicy.json

    Especificar filtros de descripción de instantáneas

    Al crear la política de copia de instantáneas en la cuenta de destino, debe especificar un filtro de descripción de instantánea. El filtro de descripción de instantáneas lo habilita para especificar un nivel adicional de filtrado que permite controlar qué instantáneas se copian mediante la política. Esto significa que la política sólo copia una instantánea si la comparte una de las cuentas de origen especificadas y tiene una descripción de instantánea que coincide con el filtro especificado. En otras palabras, si una de las cuentas de curso especificadas comparte una instantánea, pero no tiene una descripción que coincida con el filtro especificado, la política no la copia.

    La descripción del filtro de instantáneas debe especificarse mediante una expresión regular. Es un campo obligatorio cuando se crean políticas de eventos de copia entre cuentas mediante la consola y la línea de comandos. Las siguientes son expresiones regulares de ejemplo que se pueden utilizar:

    • .*—Este filtro coincide con todas las descripciones de instantáneas. Si utiliza esta expresión, la política copiará todas las instantáneas compartidas por una de las cuentas de origen especificadas.

    • Created for policy: policy-0123456789abcdef0.*—Este filtro sólo coincide con las instantáneas creadas por una política con un ID de policy-0123456789abcdef0. Si utiliza una expresión como esta, sólo las instantáneas compartidas con su cuenta por una de las cuentas de origen especificadas y que hayan sido creadas por una política con el ID especificado se copiarán por la política.

    • .*production.*—Este filtro coincide con cualquier instantánea que tenga la palabra en production cualquier lugar de la descripción. Si utiliza esta expresión, la política copiará todas las instantáneas compartidas por una de las cuentas de origen especificadas y que tengan el texto especificado en su descripción.

    Consideraciones sobre las políticas de copia de instantáneas entre cuentas

    Las siguientes consideraciones se aplican a las políticas de eventos de copia entre cuentas:

    • Solo puede copiar instantáneas sin cifrar o cifradas mediante una Clave administrada por el cliente.

    • Puede crear una política de eventos de copia entre cuentas para copiar instantáneas que estén compartidas fuera de Amazon Data Lifecycle Manager.

    • Si desea cifrar instantáneas en la cuenta de destino, el rol de IAM seleccionado para la política de eventos de copia entre cuentas debe tener permiso a fin de usar la Clave de KMS requerida.

    Recursos adicionales de

    Para obtener más información, consulte Automatización de la copia de instantáneas de Amazon EBS cifradas entre cuentas de AWS en el blog de almacenamiento de AWS.