Compartir una instantánea de base de datos - Amazon Relational Database Service

Compartir una instantánea de base de datos

Al utilizar Amazon RDS, puede compartir una instantánea manual de base de datos de las siguientes maneras:

  • Al compartir una instantánea manual de base de datos, ya sea cifrada o no cifrada, habilita a las cuentas autorizadas de AWS a copiar la instantánea.

  • Si se comparte una instantánea manual de base de datos sin cifrar, las cuentas autorizadas de AWS podrán restaurar directamente una instancia de base de datos a partir de la instantánea en lugar de hacer una copia de ella y restaurarla. Sin embargo, no puede restaurar una instancia de base de datos desde una instantánea de base de datos que esté compartida y cifrada. En lugar de ello, puede hacer una copia de la instantánea de base de datos y restaurar la instancia de base de datos desde la copia.

nota

Para compartir una instantánea automatizada, cree una instantánea manual copiando la instantánea automatizada y, a continuación, comparta esa copia. Este proceso también se aplica a los recursos generados por Backup de AWS.

Para obtener más información acerca de la copia de instantáneas, consulte Copia de una instantánea de base de datos. Para obtener más información sobre cómo restaurar una instancia de base de datos desde una instantánea de base de datos, consulte Restauración desde una instantánea de un de base de datos.

Puede compartir una instantánea manual con un máximo de 20 cuentas de AWS.

Cuando se comparten instantáneas manuales con otras cuentas de AWS, se aplican las restricciones siguientes:

  • Cuando se restaura una instancia de base de datos a partir de una instantánea compartida mediante la AWS Command Line Interface (AWS CLI) o la API de Amazon RDS, se debe especificar el nombre de recurso de Amazon (ARN) de la instantánea compartida como identificador de instantánea.

  • No puede compartir una instantánea de base de datos que utilice un grupo de opciones con opciones permanentes o persistentes, excepto para las instancias de base de datos de Oracle que tengan la opción Timezone o OLS (o ambas).

    Una opción permanente no se puede eliminar de un grupo de opciones. Los grupos de opciones con opciones persistentes no se pueden eliminar de una instancia de base de datos una vez que el grupo de opciones se ha asignado a la instancia de base de datos.

    En la siguiente tabla se muestran las opciones permanentes y persistentes, y sus motores de base de datos correspondientes.

    Nombre de la opción Persistente Permanente Motor de base de datos
    TDE No Microsoft SQL Server Enterprise Edition
    TDE Oracle Enterprise Edition
    Zona horaria

    Oracle Enterprise Edition

    Oracle Standard Edition

    Oracle Standard Edition One

    Oracle Standard Edition Two

    Para obtener las instancias de base de datos de Oracle, puede copiar las instantáneas de base de datos que tengan la opción Timezone u OLS (o ambas). Para hacerlo, especifique un grupo de opciones de destinos que incluya estas opciones cuando copie la instantánea de base de datos. La opción OLS es permanente y persistente solo para las instancias de base de datos de Oracle que ejecuten la versión 12.2 o superior de Oracle. Para obtener más información sobre estas opciones, consulte Zona horaria Oracle y Oracle Label Security.

Uso compartido de instantáneas públicas

También puede compartir una instantánea manual sin cifrar como pública, lo que hace que esté disponible para todas las cuentas de AWS. Al compartir una instantánea como pública, asegúrese de que no contiene información privada.

Cuando una instantánea se comparte públicamente, da todos los permisos de cuentas de AWS tanto para copiar la instantánea como para crear las instancias de base de datos de ella.

No se le facturará el almacenamiento de copia de seguridad de instantáneas públicas propiedad de otras cuentas. Solo se le facturan las instantáneas de su propiedad.

Si copia una instantánea pública, es el propietario de la copia. Se le facturará el almacenamiento de copia de seguridad de su copia instantánea. Si crea una Instancia de base de datos desde una instantánea pública, se le facturará de esa Instancia de base de datos. Para obtener información acerca de los precios de Amazon RDS, consulte la página del producto de Amazon RDS.

Solo puede eliminar las instantáneas públicas de su propiedad. Para eliminar una instantánea compartida o pública, debe iniciar sesión en la cuenta de AWS propietaria de la instantánea.

Visualización de instantáneas públicas propiedad de otras cuentas de AWS

Puede ver instantáneas públicas propiedad de otras cuentas en una Región de AWS particular en la pestaña Public (Público) de la página Snapshots (Instantáneas) de la consola de Amazon RDS. Sus instantáneas (las que pertenecen a su cuenta) no aparecen en esta pestaña.

Para ver instantáneas públicas

  1. Abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Snapshots (Instantáneas).

  3. Seleccione la pestaña Public (Público).

    Aparecen las instantáneas públicas. Puede ver qué cuenta posee una instantánea pública en la columna Owner (Propietario).

    nota

    Es posible que tenga que modificar las preferencias de la página, seleccionando el icono de engranaje en la parte superior derecha de la lista Public snapshots (Instantáneas públicas), para ver esta columna.

Consulta de sus propias instantáneas públicas

Puede utilizar el siguiente comando de la AWS CLI (solo para Unix) a fin de buscar las instantáneas públicas de su cuenta de AWS en una región de AWS concreta.

aws rds describe-db-snapshots --snapshot-type public --include-public | grep account_number

El resultado devuelto es similar al siguiente ejemplo si tiene instantáneas públicas.

"DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mysnapshot1", "DBSnapshotArn": "arn:aws:rds:us-east-1:123456789012:snapshot:mysnapshot2",
nota

Es posible que vea entradas duplicadas para DBSnapshotIdentifier o SourceDBSnapshotIdentifier.

Cómo compartir instantáneas cifradas

Puede compartir instantáneas de base de datos que se han cifrado "en reposo" utilizando el algoritmo de cifrado AES-256, como se describe en Cifrado de recursos de Amazon RDS. Para ello, siga estos pasos:

  1. Comparta la AWS KMS key 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 KMS con otra cuenta de AWS. Para ello, agregue la otra cuenta a la política de claves de KMS. Para obtener información detallada sobre cómo actualizar una política de claves, consulte Políticas de claves en la Guía para desarrolladores de AWS KMS. Para ver un ejemplo de cómo crear una política de claves, consulte Permitir el acceso a una AWS KMS key más adelante en este tema.

  2. Utilice la AWS Management Console, la AWS CLI, o la API de Amazon RDS para compartir la instantánea cifrada con las otras cuentas.

Estas restricciones se aplican al uso compartido de instantáneas cifradas:

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

  • No se pueden compartir instantáneas de Oracle o Microsoft SQL Server cifradas mediante el cifrado de datos transparente (TDE).

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

Permitir el acceso a una AWS KMS key

Para que otra cuenta de AWS pueda copiar una instantánea cifrada de base de datos que se comparta desde su cuenta, la cuenta con la que se comparte la instantánea debe tener acceso a la AWS que cifró la instantánea.

Para permitir que otra cuenta de AWS tenga acceso a una clave de KMS, actualice la política de clave de la clave de KMS. Esta puede actualizarse con el nombre de recurso de Amazon (ARN) de la cuenta de AWS con la que va a compartir como Principal en la política de clave de KMS. A continuación, permita la acción kms:CreateGrant.

Una vez que una cuenta de AWS accede a la clave de KMS, para poder copiar la instantánea cifrada, dicha cuenta de AWS debe crear un rol de AWS Identity and Access Management (IAM), si todavía no lo tiene. Además, dicha cuenta de AWS también debe asociar a ese usuario o rol de IAM una política de IAM que permita al usuario o al rol copiar una instantánea de base de datos cifrada con la clave de KMS. La cuenta debe ser un usuario de IAM y no puede ser una identidad raíz de la cuenta de AWS debido a las restricciones de seguridad de AWS KMS.

En el siguiente ejemplo de política de claves, el usuario 111122223333 es el propietario de la clave de KMS y el usuario 444455556666 es la cuenta con la que se comparte la clave. Esta política de claves actualizada da a la cuenta de AWS acceso a la clave de KMS al incluir el ARN de la identidad raíz de la cuenta de AWS del usuario 444455556666 como Principal para la política, y al permitir 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::111122223333:user/KeyUser", "arn:aws:iam::444455556666: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::111122223333:user/KeyUser", "arn:aws:iam::444455556666: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 externa de AWS tenga acceso a la clave de KMS, el propietario de dicha cuenta de AWS podrá crear una política que permita a un usuario de IAM creado para dicha cuenta copiar una instantánea que se haya cifrado con esa clave de KMS.

En el siguiente ejemplo, se muestra una política que se puede asociar a un usuario de IAM de la cuenta de AWS 444455556666 que permite al usuario de IAM copiar una instantánea compartida desde la cuenta de AWS 111122223333 cifrada con la clave de 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:111122223333:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["arn:aws:kms:us-west-2:111122223333: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 Políticas de claves en la Guía para desarrolladores de AWS KMS.

Uso compartido de una instantánea

Puede compartir una instantánea de base de datos usando la AWS Management Console, la AWS CLI o la API de RDS.

Con la consola de Amazon RDS, puede compartir una instantánea manual de base de datos con un máximo de 20 cuentas de AWS. También puede utilizar la consola para dejar de compartir una instantánea manual con una o varias cuentas.

Para compartir una instantánea manual de un de base de datos mediante la consola de Amazon RDS

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Snapshots (Instantáneas).

  3. Seleccione la instantánea manual que desea compartir.

  4. En Actions (Acciones), elija Share Snapshot (Compartir instantánea).

  5. Elija una de las siguientes opciones para DB Snapshot Visibility (Visibilidad de instantánea de base de datos).

    • Si el origen está sin cifrar, elija Public (Público) para permitir que todas las cuentas de AWS restauren una instancia de base de datos a partir de la instantánea de clúster de base de datos manual, o elija Private (Privado) para permitir que únicamente las cuentas de AWS que especifique restauren una instancia de base de datos a partir de una instantánea de base de datos manual.

      aviso

      Si establece DB Snapshot Visibility (Visibilidad de instantánea de base de datos) en Public (Pública), todas las cuentas de AWS pueden restaurar una instancia de base de datos a partir de la instantánea de base de datos manual y tener acceso a sus datos. No comparta como Public (Pública) ninguna instantánea de base de datos manual que contenga información confidencial.

    • Si el original está cifrado, DB Snapshot Visibility (Visibilidad de instantánea de base de datos) se establece en Private (Privada), ya que las instantáneas cifradas no se pueden compartir como públicas.

  6. Para AWS Account ID (ID de cuenta de AWS), escriba el identificador de cuenta de AWS para una cuenta a la que desea permitir restaurar una instancia de base de datos desde su instantánea manual y, luego, elija Add (Agregar). Repita esta acción para incluir identificadores de cuenta de AWS adicionales, con un máximo de 20 cuentas de AWS.

    Si comete un error al añadir un identificador de cuenta de AWS a la lista de cuentas permitidas, puede eliminarlo de la lista seleccionando Delete (Eliminar) a la derecha del identificador incorrecto de la cuenta de AWS.

    
							Cómo permitir que las cuentas de AWS restauren una instantánea de base de datos manual
  7. Después de añadir los identificadores de todas las cuentas de AWS a las que desea permitir la restauración de la instantánea manual, elija Save (Guardar) para guardar los cambios.

Dejar de compartir una instantánea de base de datos manual con una cuenta de AWS

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, elija Snapshots (Instantáneas).

  3. Seleccione la instantánea manual que desea dejar de compartir.

  4. Elija Actions (Acciones) y, a continuación, elija Share Snapshot (Compartir instantánea).

  5. Para eliminar el permiso de una cuenta de AWS, elija Delete (Eliminar) para el identificador de cuenta de AWS correspondiente a esa cuenta en la lista de cuentas autorizadas.

    
						Cómo permitir que las cuentas de AWS restauren una instantánea de base de datos manual
  6. Elija Save (Guardar) para guardar los cambios.

Para compartir una instantánea de base de datos, use el comando aws rds modify-db-snapshot-attribute. Use el parámetro --values-to-add para añadir la lista de los ID de las cuentas de AWS que tienen autorización para restaurar la instantánea manual.

ejemplo de compartir una instantánea con una sola cuenta

El siguiente ejemplo habilita el identificador de cuenta 123456789012 de AWS para restaurar la instantánea de base de datos denominada db7-snapshot.

Para Linux, macOS o Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier db7-snapshot \ --attribute-name restore \ --values-to-add 123456789012

Para Windows:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier db7-snapshot ^ --attribute-name restore ^ --values-to-add 123456789012

ejemplo de compartir una instantánea con varias cuentas

El siguiente ejemplo habilita dos identificadores de cuenta de AWS, 111122223333 y 444455556666, para restaurar la instantánea de base de datos denominada manual-snapshot1.

Para Linux, macOS o Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier manual-snapshot1 \ --attribute-name restore \ --values-to-add {"111122223333","444455556666"}

Para Windows:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier manual-snapshot1 ^ --attribute-name restore ^ --values-to-add "[\"111122223333\",\"444455556666\"]"
nota

Al utilizar el símbolo del sistema de Windows, debe aplicar escape con comillas dobles (") en código JSON al ponerlas como prefijo con una barra invertida (\).

Para quitar un identificador de cuentas de AWS de la lista, use el parámetro --values-to-remove.

ejemplo de detener el uso compartido de instantáneas

En el siguiente ejemplo, se impide que el ID 444455556666 de la cuenta de AWS se restaure desde la instantánea.

Para Linux, macOS o Unix:

aws rds modify-db-snapshot-attribute \ --db-snapshot-identifier manual-snapshot1 \ --attribute-name restore \ --values-to-remove 444455556666

Para Windows:

aws rds modify-db-snapshot-attribute ^ --db-snapshot-identifier manual-snapshot1 ^ --attribute-name restore ^ --values-to-remove 444455556666

Para enumerar las cuentas de AWS habilitadas para restaurar una instantánea, utilice el comando describe-db-snapshot-attributes de la AWS CLI.

También puede compartir una instantánea manual de base de datos con otras cuentas de AWS mediante la API de Amazon RDS. Para ello, llame a la operación ModifyDBSnapshotAttribute. Especifique restore en AttributeName y utilice el parámetro ValuesToAdd para añadir la lista de los ID de las cuentas de AWS que tienen autorización para restaurar la instantánea manual.

Para hacer que una instantánea manual sea pública y puedan restaurarla todas las cuentas de AWS, utilice el valor all. Sin embargo, tenga cuidado de no añadir el valor all para las instantáneas manuales que contienen información confidencial que no desea que esté disponible para todas las cuentas de AWS. Además, tampoco especifique all para las instantáneas cifradas, ya que dichas instantáneas no pueden hacerse públicas.

Para eliminar el permiso de uso compartido de una cuenta de AWS, utilice la operación ModifyDBSnapshotAttribute con AttributeName establecido en restore y el parámetro ValuesToRemove. Para marcar una instantánea manual como privada, elimine el valor all de la lista de valores del atributo restore.

Para ver una lista de todas las cuentas de AWS que tienen permiso para restaurar una instantánea, utilice la operación DescribeDBSnapshotAttributes de la API.