Uso compartido de instantáneas de clústeres de Amazon DocumentDB - Amazon DocumentDB

Uso compartido de instantáneas de clústeres de Amazon DocumentDB

En Amazon DocumentDB, puede compartir instantáneas de clúster manuales, que pueden copiar Cuentas de AWS autorizadas. Puede compartir instantáneas manuales cifradas o no cifradas. Cuando se comparte una instantánea sin cifrar, las Cuentas de AWS autorizadas pueden restaurar directamente el clúster directamente desde la instantánea en lugar de hacer una copia y restaurarla. Sin embargo, no se puede restaurar un clúster desde una instantánea que esté compartida y cifrada. En lugar de ello, puede hacer una copia del clúster y restaurarlo desde esa copia. Para obtener más información acerca de cómo copiar una instantánea, consulte Copia de instantáneas de clústeres de Amazon DocumentDB.

nota

No se pueden compartir instantáneas automatizadas de un clúster de Amazon DocumentDB. Como solución alternativa, puede crear una instantánea manual copiando la instantánea automatizada y compartir después esa copia. Para obtener más información acerca de cómo copiar una instantánea, consulte Copia de instantáneas de clústeres de Amazon DocumentDB. Para obtener más información acerca de cómo restaurar un clúster desde una instantánea, consulte Restauración de una instantánea del clúster.

Puede compartir una instantánea manual con otras 20 Cuentas de AWS como máximo. También puede compartir una instantánea manual sin cifrar como pública, lo que hace que esté disponible para todas las cuentas de . Si comparte una instantánea como pública, compruebe que no contiene información privada.

Cuando comparte instantáneas manuales con otras Cuentas de AWS y restaura un clúster desde una instantánea compartida a través de la AWS CLI o la API de Amazon DocumentDB, debe especificar el nombre de recurso de Amazon (ARN) de la instantánea compartida como identificador de la instantánea.

Cómo compartir una instantánea cifrada

Cuando se comparten instantáneas cifradas, se aplican las siguientes restricciones:

  • No se pueden compartir instantáneas cifradas como públicas.

  • No se puede compartir una instantánea que se ha cifrado utilizando la clave de cifrado predeterminada de AWS KMS de la cuenta que compartió la instantánea.

Siga estos pasos para compartir instantáneas cifradas.

  1. Comparta la clave de cifrado de AWS Key Management Service (AWS KMS) que se utilizó para cifrar la instantánea con las cuentas que desea que tengan acceso a la instantánea.

    Puede compartir las claves de cifrado de AWS KMS con otras cuentas de AWS agregando esas otras cuentas a la política de claves de AWS KMS. Para obtener información detallada sobre cómo actualizar una política de claves, consulte Uso de políticas de claves en AWS KMS de la Guía para desarrolladores de AWS Key Management Service. Para ver un ejemplo de cómo crear una política de claves, consulte Creación de una política de IAM para permitir la copia de la instantánea cifrada más adelante en este tema.

  2. Utilice la AWS CLI, tal y como se muestra más abajo, para compartir la instantánea cifrada con las demás cuentas.

Cómo permitir el acceso a una clave de cifrado de AWS KMS

Para que otra Cuenta de AWS pueda copiar una instantánea cifrada que se comparta desde su cuenta, la cuenta con la que se comparte la instantánea debe tener acceso a la clave de AWS KMS que cifró la instantánea. Para permitir que otra cuenta tenga acceso a una clave de AWS KMS, actualice la política de claves correspondiente a la clave de AWS KMS con el ARN de la cuenta con la que está compartiendo como entidad principal en la política de claves de AWS KMS. A continuación, permita la acción kms:CreateGrant.

Después de dar a una cuenta acceso a su clave de cifrado de AWS KMS, para copiar la instantánea cifrada, dicha cuenta debe crear un usuario de AWS Identity and Access Management (IAM) si todavía no tiene uno. Además, esa cuenta también debe asociar a ese usuario de IAM una política de IAM que le permita copiar una instantánea cifrada utilizando la clave de AWS KMS. La cuenta debe ser un usuario de IAM y no puede ser una identidad raíz de Cuenta de AWS debido a las restricciones de seguridad de AWS KMS.

En el siguiente ejemplo de política de claves, el usuario 123451234512 es el propietario de la clave de cifrado de AWS KMS. El usuario 123456789012 es la cuenta con la que se comparte la clave. Esta política de claves actualizada da a la cuenta acceso a la clave de AWS KMS. Para ello, incluye el ARN de la identidad raíz de la Cuenta de AWS del usuario 123456789012 como entidad principal de la política y permite la acción kms:CreateGrant.

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::123451234512:user/KeyUser", "arn:aws:iam::123456789012:root" ]}, "Action": [ "kms:CreateGrant", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*"}, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::123451234512:user/KeyUser", "arn:aws:iam::123456789012:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }

Creación de una política de IAM para permitir la copia de la instantánea cifrada

Una vez que la Cuenta de AWS externa tenga acceso a la clave de AWS KMS, el propietario de esa cuenta puede crear una política que permita a un usuario de IAM creado para esa cuenta copiar una instantánea cifrada que haya sido cifrada con esa clave de AWS KMS.

En el siguiente ejemplo se muestra una política que puede asociarse a un usuario de IAM para la Cuenta de AWS 123456789012. La política permite al usuario de IAM copiar una instantánea compartida de la cuenta 123451234512 que se ha cifrado con la clave de AWS KMS c989c1dd-a3f2-4a5d-8d96-e793d082ab26 en la región us-west-2.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUseOfTheKey", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant" ], "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

Para obtener información detallada sobre cómo actualizar una política de claves, consulte Uso de políticas de claves en AWS KMS de la Guía para desarrolladores de AWS Key Management Service.

Uso compartido de una instantánea

Para compartir una instantánea, use la operación de Amazon DocumentDB modify-db-snapshot-attribute. Use el parámetro --values-to-add para añadir la lista de los ID de Cuentas de AWS que tienen autorización para restaurar la instantánea manual.

En el siguiente ejemplo se permite que dos identificadores de Cuenta de AWS, 123451234512 y 123456789012, restauren la instantánea llamada manual-snapshot1. También se elimina el valor del atributo all para marcar la instantánea como privada.

Para Linux, macOS o Unix:

aws docdb modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier sample-cluster-snapshot \ --attribute-name restore \ --values-to-add '["123451234512","123456789012"]'

Para Windows:

aws docdb modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier sample-cluster-snapshot ^ --attribute-name restore ^ --values-to-add '["123451234512","123456789012"]'

La salida de esta operación será similar a lo que se indica a continuación.

{ "DBClusterSnapshotAttributesResult": { "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", "DBClusterSnapshotAttributes": [ { "AttributeName": "restore", "AttributeValues": [ "123451234512", "123456789012" ] } ] } }

Para quitar un identificador de Cuenta de AWS de la lista, use el parámetro --values-to-remove. En el siguiente ejemplo se impide que el ID 123456789012 de Cuenta de AWS se restaure desde la instantánea.

Para Linux, macOS o Unix:

aws docdb modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier sample-cluster-snapshot \ --attribute-name restore \ --values-to-remove '["123456789012"]'

Para Windows:

aws docdb modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier sample-cluster-snapshot ^ --attribute-name restore ^ --values-to-remove '["123456789012"]'

La salida de esta operación será similar a lo que se indica a continuación.

{ "DBClusterSnapshotAttributesResult": { "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", "DBClusterSnapshotAttributes": [ { "AttributeName": "restore", "AttributeValues": [ "123451234512" ] } ] } }