Partage d'un instantané de de base de données - Amazon Relational Database Service

Partage d'un instantané de de base de données

Amazon RDS vous permet de partager un instantané de de base de données manuel des façons suivantes :

  • Le partage d'un instantané de de base de données manuel chiffré ou non chiffré permet aux comptes AWS autorisés de copier l'instantané.

  • Le partage d'un instantané de bases de données manuel non chiffré permet aux comptes AWS autorisés de restaurer directement une instance de base de données à partir de l'instantané, plutôt que d'effectuer une copie et de la restaurer. Toutefois, vous ne pouvez pas restaurer une instance de base de données à partir d'un instantané de base de données qui est à la fois partagé et chiffré. Par contre, vous pouvez créer une copie de l'instantané de base de données et restaurer l'instance de base de données à partir de cette copie.

Note

Pour partager un instantané de de base de données automatisé, créez un instantané de de base de données manuel en copiant l'instantané automatisé, puis partagez cette copie. Ce processus s'applique également aux ressources générées par AWS Backup.

Pour plus d'informations sur la copie d'un instantané, consultez Copie d'un snapshot de . Pour plus d'informations sur la restauration d'une instance de base de données à partir d'un instantané de de base de données, consultez la section Restauration à partir d'un instantané de de base de données.

Vous pouvez partager un instantané manuel avec 20 autres comptes AWS maximum.

Les limites suivantes s'appliquent lors du partage d'instantanés manuels avec d'autres comptes AWS :

  • Lorsque vous restaurez une instance ou un de base de données à partir d'un instantané partagé à l'aide de l'AWS Command Line Interface (AWS CLI) ou de l'API RDS, vous devez spécifier l'Amazon Resource Name (ARN) de l'instantané partagé en tant qu'identifiant de l'instantané.

  • Vous ne pouvez pas partager un instantané de bases de données qui utilise un groupe d'options comportant des options permanentes ou persistantes, sauf pour les instances de base de données Oracle qui possèdent l'option Timezone et/ou OLS.

    Une option permanente ne peut pas être supprimée d'un groupe d'options. Les groupes d'options avec des options persistantes ne peuvent pas être supprimés d'une instance de base de données une fois que le groupe d'options a été assigné à l'instance de base de données.

    Le tableau suivant répertorie les options permanentes et persistantes ainsi que leurs moteurs de base de données associés.

    Nom d'option Persistante Permanent Moteur de base de données
    TDE Oui Non Configurer SQL Server Enterprise Edition
    TDE Oui Oui Oracle Enterprise Edition
    Fuseau horaire Oui Oui

    Oracle Enterprise Edition

    Oracle Standard Edition

    Oracle Standard Edition One

    Oracle Standard Edition Two

    Pour les instances de base de données Oracle, vous pouvez copier les instantanés de bases de données partagés qui possèdent l'option Timezone et/ou OLS. Pour ce faire, spécifiez un groupe d'options cibles qui inclut ces options lorsque vous copiez l'instantané de bases de données. L'option OLS est permanente et persistante uniquement pour les instances de bases de données Oracle exécutant Oracle version 12.2 ou ultérieure. Pour plus d'informations sur ces options, veuillez consulter Fuseau horaire Oracle et Oracle Label Security.

Partage d'instantanés publics

Vous pouvez également partager un instantané manuel non chiffré marqué comme public ; il est ainsi accessible à tous les comptes AWS. Lors du partage d'un instantané marqué comme public, assurez-vous de n'inclure aucune information privée dans l'instantané public.

Lorsqu'un instantané est partagé publiquement, il donne à tous les comptes AWS l'autorisation de copier l'instantané et de créer des instances de base de données à partir de cet instantané.

Le stockage de sauvegarde des snapshots publics appartenant à d'autres comptes n'est pas facturé. Seuls les instantanés que vous possédez vous sont facturés.

Si vous copiez un instantané public, vous êtes propriétaire de la copie. Le stockage de sauvegarde de votre copie d'instantané vous est facturé. Si vous créez une instance de base de données à partir d'un instantané public, cette instance de base de données vous est facturée. Pour plus d'informations sur la tarification de Amazon RDS, consultez lapage produit de Amazon RDS.

Vous ne pouvez supprimer que les instantanés publics que vous possédez. Pour supprimer un instantané partagé ou public, assurez-vous de vous connecter au compte AWS propriétaire de l'instantané.

Affichage des instantanés publics appartenant à d'autres comptes AWS

Vous pouvez afficher les instantanés publics appartenant à d'autres comptes dans une région AWS spécifique dans l'onglet Public de la page Snapshots (Instantanés) dans la console Amazon RDS. Vos instantanés (ceux appartenant à votre compte) n'apparaissent pas dans cet onglet.

Pour afficher des instantanés publics

  1. Ouvrez la console Amazon RDS à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans le panneau de navigation, choisissez Snapshots.

  3. Choisissez l'onglet Public.

    Les instantanés publics s'affichent. Vous pouvez voir quel compte possède un instantané public dans la colonne Owner (Propriétaire).

    Note

    Pour voir cette colonne, vous devrez peut-être modifier les préférences de la page en sélectionnant l'icône en forme d'engrenage en haut à droite de la liste Public snapshots (Instantanés publics).

Affichage de vos propres Instantanés publics

Vous pouvez utiliser la commande AWS CLI suivante (Unix uniquement) pour afficher les instantanés publics possédés par votre compte AWS dans une région AWS particulière.

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

La sortie renvoyée est semblable à l'exemple suivant si vous avez des instantanés publics.

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

Vous pouvez voir des entrées en double pour DBSnapshotIdentifier ou SourceDBSnapshotIdentifier.

Partage d'instantanés chiffrés

Vous pouvez partager des instantanés de de base de données qui ont été chiffrés « au repos » en utilisant l'algorithme de chiffrement AES-256, comme décrit dans Chiffrement des ressources Amazon RDS. Pour cela, effectuez les opérations suivantes :

  1. Partagez la AWS KMS key qui a été utilisée pour chiffrer l'instantané avec tous les comptes que vous souhaitez autoriser à accéder à l'instantané.

    Vous pouvez partager des clés KMS avec un autre compte AWS en ajoutant l'autre compte à la politique de clé KMS. Pour plus de détails sur la mise à jour d'une politique de clé, voir politiques de clés dans le Guide du développeur AWS KMS. Pour obtenir un exemple de création d'une politique de clé, consultez Autoriser l'accès à une AWS KMS key plus loin dans cette rubrique.

  2. Utilisez l'AWS Management Console, l'AWS CLI ou l'API Amazon RDS for partager l'instantané chiffré avec les autres comptes.

Ces restrictions s'appliquent au partage d'instantanés chiffrés :

  • Vous ne pouvez pas partager des instantanés chiffrés marqués comme publics.

  • Vous ne pouvez pas partager des instantanés Oracle ou Microsoft SQL Server qui sont chiffrés à l'aide de Transparent Data Encryption (TDE).

  • Vous ne pouvez pas partager un instantané chiffré à l'aide de la clé de chiffrement KMS par défaut du compte AWS qui a partagé l'instantané.

Autoriser l'accès à une AWS KMS key

Pour qu'un autre compte AWS copie un instantané de de base de données chiffré partagé depuis votre compte, le compte avec lequel vous partagez votre instantané doit avoir accès à la AWS KMS key qui a chiffré l'instantané.

Pour autoriser un autre compte AWS à accéder une clé KMS, mettez à jour la politique de la clé KMS. Vous la mettez à jour avec l'Amazon Resource Name (ARN) du compte AWS que vous partagez en tant que Principal dans la politique de clé KMS. Ensuite, vous autorisez l'action kms:CreateGrant.

Une fois que vous avez donné à un compte AWS l'accès à votre clé KMS, pour copier votre instantané chiffré, ce compte AWS doit créer un rôle ou un utilisateur AWS Identity and Access Management (IAM) s'il n'en possède pas encore. En outre, ce compte AWS doit également attacher une politique IAM pour ce rôle ou cet utilisateur IAM qui permet à ce dernier de copier un instantané de de base de données chiffré à l'aide de votre clé KMS. Le compte doit être un utilisateur IAM et ne peut pas être une identité du compte AWS racine en raison des restrictions de sécurité AWS KMS.

Dans l'exemple de politique suivant, l'utilisateur 111122223333 est le propriétaire de la clé KMS, et l'utilisateur 444455556666 est le compte avec lequel la clé est partagée. Cette politique de clé mise à jour permet au compte AWS d'accéder à la clé KMS en incluant l'ARN pour l'identité du compte AWS racine pour l'utilisateur 444455556666 en tant que Principal pour la politique et en autorisant l'action 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}} } ] }

Création d'une politique IAM pour permettre la copie d'un instantané chiffré

Une fois que le compte AWS externe peut accéder à votre clé KMS, le propriétaire de ce compte AWS peut créer une politique qui autorise un utilisateur IAM créé pour ce compte à copier un instantané chiffré avec cette clé KMS.

L'exemple suivant montre une politique pouvant être attachée à un utilisateur IAM pour un compte AWS 444455556666 qui permet à l'utilisateur IAM de copier un instantané partagé depuis le compte AWS 111122223333 qui a été chiffré avec la clé CMK c989c1dd-a3f2-4a5d-8d96-e793d082ab26 dans la région 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 } } } ] }

Pour plus de détails sur la mise à jour d'une politique de clé, voir politiques de clés dans le Guide du développeur AWS KMS.

Partage d'un instantané

Vous pouvez partager un instantané de de base de données à l'aide de la AWS Management Console, de l'AWS CLI ou de l'API RDS.

En utilisant la console Amazon RDS, vous pouvez partager un instantané de de base de données manuel avec jusqu'à 20 comptes AWS. Vous pouvez également utiliser la console pour arrêter le partage d'un instantané manuel avec un ou plusieurs comptes.

Pour partager un instantané de de base de données manuel à l'aide de la console Amazon RDS

  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans le panneau de navigation, choisissez Snapshots.

  3. Sélectionnez l'instantané manuel que vous voulez partager.

  4. Pour Actions, choisissez Partager l'instantané.

  5. Choisissez l'une des options suivantes pour DB snapshot visibility (Visibilité d'instantané de base de données).

    • Si la source est non chiffrée, choisissez Public pour permettre à tous les comptes AWS de restaurer un(e) instance de base de données à partir d'un instantané de de base de données manuel, ou choisissez Private (Privé) pour autoriser uniquement les comptes AWS que vous spécifiez pour restaurer un(e) instance de base de données à partir de votre instantané de de base de données manuel.

      Avertissement

      Si vous définissez DB Snapshot Visibility (Visibilité de l'instantané de base de données) sur Public, tous les comptes AWS peuvent restaurer une instance de base de données à partir de votre instantané de de base de données manuel et accéder à vos données. Ne partagez aucun instantané de de base de données manuel contenant des informations privées en le marquant comme Public.

    • Si la source est chiffrée, la Visibilité d'instantané de base de données est définie sur Privé, car les instantanés chiffrés ne peuvent pas être partagés s'ils sont marqués comme étant publics.

  6. Dans ID de compte AWS, saisissez l'identifiant du compte AWS que vous souhaitez autoriser à restaurer une instance ou un de base de données depuis votre instantané manuel, puis choisissez Add (Ajouter). Faites de même pour inclure des identifiants de compte AWS supplémentaires, jusqu'à 20 comptes AWS.

    Si vous faites une erreur en ajoutant un identifiant de compte AWS à la liste des comptes autorisés, vous pouvez le supprimer de la liste en choisissant Delete (Supprimer) à droite de l'identifiant de compte AWS incorrect.

    
							Permettre aux comptes AWS de restituer un instantané de  de base de données manuel
  7. Après avoir ajouté des identifiants pour tous les comptes AWS que vous souhaitez autoriser à restaurer l'instantané manuel, choisissez Save (Enregistrer) pour enregistrer vos modifications.

Pour arrêter le partage d'un instantané de de base de données manuel avec un compte AWS

  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans le panneau de navigation, choisissez Snapshots.

  3. Sélectionnez l'instantané manuel que vous voulez cesser de partager.

  4. Choisissez Actions, puis Share Snapshot (Partager instantané).

  5. Pour supprimer une autorisation pour un compte AWS, choisissez Delete (Supprimer) pour l'identifiant du compte AWS dans la liste des comptes autorisés.

    
						Permettre aux comptes AWS de restituer un instantané de  de base de données manuel
  6. Choisissez Save pour enregistrer les changements.

Pour partager un instantané de de base de données, utilisez la commande aws rds modify-db-snapshot-attribute . Utilisez le paramètre --values-to-add pour ajouter une liste des ID de comptes AWS autorisés à restaurer l'instantané manuel.

Exemple de partager un instantané avec un seul compte

L'exemple suivant active un identifiant de compte AWS 123456789012 pour restaurer l'instantané de bases de données nommé db7-snapshot.

Pour Linux, macOS ou Unix :

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

Pour Windows :

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

Exemple de partager un instantané avec plusieurs comptes

L'exemple suivant active deux identifiants de compte AWS 111122223333 et 444455556666, pour restaurer l'instantané de base de données appelé manual-snapshot1.

Pour Linux, macOS ou Unix :

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

Pour Windows :

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

Lorsque vous utilisez l'invite de commande Windows, vous devez utiliser des guillemets doubles (") d'échappement dans le code JSON en les préfixant d'une barre oblique inverse (\).

Pour supprimer de la liste un identifiant de compte AWS, utilisez le paramètre --values-to-remove.

Exemple de l'arrêt du partage d'instantanés

L'exemple suivant empêche l'ID de compte AWS 444455556666 de restaurer l'instantané.

Pour Linux, macOS ou Unix :

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

Pour Windows :

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

Pour répertorier les comptes AWS activés pour restaurer un instantané, utilisez la commande describe-db-snapshot-attributes de l'AWS CLI.

Vous pouvez également partager un instantané de de base de données manuel avec d'autres comptes AWS à l'aide de l'API Amazon RDS. Pour ce faire, appelez l'opération ModifyDBSnapshotAttribute . Indiquez restore pour AttributeName, et utilisez le paramètre ValuesToAdd pour ajouter une liste des ID de comptes AWS pour ceux autorisés à restaurer l'instantané manuel.

Pour qu'un instantané manuel soit défini comme étant public et qu'il puisse être restauré par tous les comptes AWS, utilisez la valeur all. Toutefois, n'ajoutez pas la valeur all pour tous les snapshots manuels contenant des informations privées que vous ne souhaitez pas mettre à la disposition de tous les comptes AWS. De même, ne spécifiez pas la valeur all pour les instantanés chiffrés, car il est impossible de rendre tous ces instantanés publics.

Pour supprimer l'autorisation de partage d'un compte AWS, utilisez l'opération ModifyDBSnapshotAttribute avec AttributeName configuré sur restore et le paramètre ValuesToRemove. Pour marquer un instantané manuel comme privé, supprimez la valeur all de la liste des valeurs pour l'attribut restore.

Pour répertorier tous les comptes AWS autorisés à restaurer un instantané, utilisez l'opération d'API DescribeDBSnapshotAttributes .