Sécurité dans Amazon RDS Custom - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Sécurité dans Amazon RDS Custom

Familiarisez-vous avec les considérations de sécurité relatives à RDS Custom.

Comment RDS Custom gère en toute sécurité les tâches en votre nom

RDSCustom utilise les outils et techniques suivants pour exécuter des opérations en toute sécurité en votre nom :

Rôle lié à un service AWSServiceRoleForRDSCustom

Un rôle lié à un service est prédéfini par le service et inclut toutes les autorisations requises par le service pour appeler d'autres  Services AWS  en votre nom. Pour RDS Custom, AWSServiceRoleForRDSCustom il s'agit d'un rôle lié à un service défini selon le principe du moindre privilège. RDSCustom utilise les autorisations définies dansAmazonRDSCustomServiceRolePolicy, qui constituent la politique associée à ce rôle, pour effectuer la plupart des tâches de provisionnement et de gestion hors hôte. Pour plus d'informations, voir mazonRDSCustomServiceRolePolicyA.

Lorsqu'elle exécute des tâches sur l'hôte, l'automatisation RDS personnalisée utilise les informations d'identification du rôle lié au service pour exécuter des commandes à l'aide de. AWS Systems Manager Vous pouvez auditer l'historique des commandes via l'historique des commandes de Systems Manager et  AWS CloudTrail. Systems Manager se connecte à votre instance de base de données RDS personnalisée à l'aide de votre configuration réseau. Pour de plus amples informations, veuillez consulter Étape 4 : Configuration personnalisée d'IAM pour RDS pour Oracle.

IAMInformations d'identification temporaires

Lors du provisionnement ou de la suppression de ressources, RDS Custom utilise parfois des informations d'identification temporaires dérivées des informations d'identification du IAM principal appelant. Ces IAM informations d'identification sont limitées par les IAM politiques associées à ce principal et expirent une fois l'opération terminée. Pour en savoir plus sur les autorisations requises pour IAM les directeurs qui utilisent RDS Custom, voirÉtape 5 : accordez les autorisations requises à votre utilisateur ou à votre rôle IAM.

Profil d'EC2instance Amazon

Un profil d'EC2instance est un conteneur pour un IAM rôle que vous pouvez utiliser pour transmettre des informations de rôle à une EC2 instance. Une EC2 instance sous-tend une instance de base de données RDS personnalisée. Vous fournissez un profil d'instance lorsque vous créez une instance de base de données RDS personnalisée. RDSCustom utilise les informations d'identification du profil d'EC2instance lorsqu'il exécute des tâches de gestion basées sur l'hôte, telles que des sauvegardes. Pour de plus amples informations, veuillez consulter Créer manuellement votre profil d'instance et de rôle IAM.

SSHpaire de clés

Lorsque RDS Custom crée l'EC2instance qui sous-tend une instance de base de données, il crée une paire de SSH clés en votre nom. La clé utilise le préfixe do-not-delete-rds-custom-ssh-privatekey-db- de dénomination. AWS Secrets Manager stocke cette clé SSH privée en tant que secret dans votre Compte AWS. Amazon RDS ne stocke pas, n'accède pas à ces informations d'identification et ne les utilise pas. Pour plus d'informations, consultez les paires de EC2 clés Amazon et les instances Linux.

SSLcertificats

RDSLes instances de base de données personnalisées ne prennent pas en charge SSL les certificats gérés. Si vous souhaitez effectuer un déploiementSSL, vous pouvez gérer vous-même les SSL certificats dans votre propre portefeuille et créer un SSL écouteur pour sécuriser les connexions entre la base de données cliente ou pour la réplication de la base de données. Pour en savoir plus, consultez Configuring Transport Layer Security Authentication dans la documentation Oracle Database.

Sécurisation de votre compartiment Amazon S3 contre le problème de l'adjoint confus

Lorsque vous créez une version RDS personnalisée du moteur Amazon Custom pour Oracle (CEV) ou une instance de base de données RDS personnalisée pour le SQL serveur, RDS Custom crée un compartiment Amazon S3. Le compartiment S3 stocke des fichiers tels que CEV des artefacts, des journaux de rétablissement (transactions), des éléments de configuration pour le périmètre de support et AWS CloudTrail des journaux.

Vous pouvez rendre ces compartiments S3 plus sûrs en utilisant les clés de contexte de condition globale pour éviter le problème de l'adjoint confus. Pour de plus amples informations, veuillez consulter Prévention des problèmes d'adjoint confus entre services.

L'exemple RDS Custom for Oracle suivant montre l'utilisation des clés de contexte de condition aws:SourceAccount globale aws:SourceArn et des clés de contexte dans une politique de compartiment S3. Pour RDS Custom for Oracle, assurez-vous d'inclure les noms des ressources Amazon (ARNs) pour les instances de base de données CEVs et les instances de base de données. Pour RDS Custom for SQL Server, assurez-vous d'inclure les instances ARN de base de données.

... { "Sid": "AWSRDSCustomForOracleInstancesObjectLevelAccess", "Effect": "Allow", "Principal": { "Service": "custom.rds.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectRetention", "s3:BypassGovernanceRetention" ], "Resource": "arn:aws:s3:::do-not-delete-rds-custom-123456789012-us-east-2-c8a6f7/RDSCustomForOracle/Instances/*", "Condition": { "ArnLike": { "aws:SourceArn": [ "arn:aws:rds:us-east-2:123456789012:db:*", "arn:aws:rds:us-east-2:123456789012:cev:*/*" ] }, "StringEquals": { "aws:SourceAccount": "123456789012" } } }, ...

Rotation RDS des informations d'identification Custom for Oracle pour les programmes de conformité

Certains programmes de conformité exigent que les informations d'identification des utilisateurs de la base de données soient modifiées régulièrement, par exemple tous les 90 jours. RDSCustom for Oracle fait automatiquement pivoter les informations d'identification de certains utilisateurs de base de données prédéfinis.

Rotation automatique des informations d'identification pour les utilisateurs prédéfinis

Si votre instance de base de données RDS personnalisée pour Oracle est hébergée sur AmazonRDS, les informations d'identification des utilisateurs Oracle prédéfinis suivants changent automatiquement tous les 30 jours. Les informations d'identification des utilisateurs précédents se trouvent dans AWS Secrets Manager.

Utilisateur de la base de donnéeCréé parVersions de moteur prises en chargeRemarques

SYS

Oracle

custom-oracle-ee

custom-oracle-ee-cdb

custom-oracle-se2

custom-oracle-se2 cdb

SYSTEM

Oracle

custom-oracle-ee

custom-oracle-ee-cdb

custom-oracle-se2

custom-oracle-se2 cdb

RDSADMIN

RDS

custom-oracle-ee

custom-oracle-se2

C##RDSADMIN

RDS

custom-oracle-ee-cdb

custom-oracle-se2 cdb

Les noms d'utilisateur dotés d'un C## préfixe n'existent que dansCDBs. Pour plus d'informationsCDBs, consultez la section Présentation de l'architecture Amazon RDS Custom for Oracle.

RDS_DATAGUARD

RDS

custom-oracle-ee

Cet utilisateur n'existe que dans les répliques en lecture, les bases de données sources pour les répliques en lecture et les bases de données que vous avez physiquement migrées vers RDS Custom à l'aide d'Oracle Data Guard.

C##RDS_DATAGUARD

RDS

custom-oracle-ee-cdb

Cet utilisateur n'existe que dans les répliques en lecture, les bases de données sources pour les répliques en lecture et les bases de données que vous avez physiquement migrées vers RDS Custom à l'aide d'Oracle Data Guard. Les noms d'utilisateur dotés d'un C## préfixe n'existent que dansCDBs. Pour plus d'informationsCDBs, consultez la section Présentation de l'architecture Amazon RDS Custom for Oracle.

Une exception à la rotation automatique des informations d'identification est une instance de base de données RDS personnalisée pour Oracle que vous avez configurée manuellement en tant que base de données de secours. RDSfait uniquement pivoter les informations d'identification pour les répliques de lecture que vous avez créées à l'aide de la create-db-instance-read-replica CLI commande ou. CreateDBInstanceReadReplica API

Instructions pour la rotation des informations d'identification des utilisateurs

Pour vous assurer que vos informations d'identification changent en fonction de votre programme de conformité, tenez compte des instructions suivantes :

  • Si votre instance de base de données alterne automatiquement les informations d'identification, ne modifiez ni ne supprimez manuellement un secret, un fichier de mots de passe ou un mot de passe pour les utilisateurs répertoriés dans Utilisateurs Oracle prédéfinis. Sinon, RDS Custom peut placer votre instance de base de données en dehors du périmètre de support, ce qui interrompt la rotation automatique.

  • L'utilisateur RDS principal n'étant pas prédéfini, vous êtes responsable de modifier le mot de passe manuellement ou de configurer la rotation automatique dans Secrets Manager. Pour plus d'informations, consultez Rotation AWS Secrets Manager des secrets.

Rotation manuelle des informations d'identification des utilisateurs

Pour les catégories de bases de données suivantes, les informations d'identification des utilisateurs répertoriées dans la section Utilisateurs Oracle prédéfinis RDS ne sont pas automatiquement modifiées :

  • Base de données que vous avez configurée manuellement pour fonctionner en tant que base de données de secours.

  • Bases de données sur site.

  • Une instance de base de données située en dehors du périmètre de support ou dans un état dans lequel l'automatisation RDS personnalisée ne peut pas s'exécuter. Dans ce cas, RDS Custom ne fait pas non plus pivoter les touches.

Si votre base de données appartient à l'une des catégories précédentes, vous devez effectuer une rotation manuelle de vos informations d'identification utilisateur.

Pour effectuer une rotation manuelle des informations d'identification utilisateur pour une instance de base de données
  1. Connectez-vous à la RDS console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans Bases de données, assurez-vous qu'il ne sauvegarde RDS pas actuellement votre instance de base de données ou n'effectue pas d'opérations telles que la configuration de la haute disponibilité.

  3. Sur la page de détails de la base de données, choisissez Configuration et notez l'ID de ressource de l'instance de base de données. Vous pouvez également utiliser la AWS CLI commandedescribe-db-instances.

  4. Ouvrez la console Secrets Manager à l'adresse https://console.aws.amazon.com/secretsmanager/.

  5. Dans la zone de recherche, saisissez votre ID de ressource de base de données et recherchez le secret sous la forme suivante :

    do-not-delete-rds-custom-db-resource-id-numeric-string

    Ce secret enregistre le mot de passe pour RDSADMIN, SYS et SYSTEM. L'exemple de clé suivant concerne l'instance de base de données avec l'ID de ressource de base de données db-ABCDEFG12HIJKLNMNOPQRS3TUVWX :

    do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-123456
    Important

    Si votre instance de base de données est un réplica en lecture et utilise le moteur custom-oracle-ee-cdb, deux secrets existent avec le suffixe db-resource-id-numeric-string, l'un pour l'utilisateur principal et l'autre pour RDSADMIN, SYS et SYSTEM. Pour trouver le secret correct, exécutez la commande suivante sur l'hôte :

    cat /opt/aws/rdscustomagent/config/database_metadata.json | python3 -c "import sys,json; print(json.load(sys.stdin)['dbMonitoringUserPassword'])"

    L'attribut dbMonitoringUserPassword indique le secret pour RDSADMIN, SYS et SYSTEM.

  6. Si votre instance de base de données existe dans une configuration Oracle Data Guard, recherchez le secret sous la forme suivante :

    do-not-delete-rds-custom-db-resource-id-numeric-string-dg

    Ce secret enregistre le mot de passe pour RDS_DATAGUARD. L'exemple de clé suivant concerne l'instance de base de données avec l'ID de ressource de base de données db-ABCDEFG12HIJKLNMNOPQRS3TUVWX :

    do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-789012-dg
  7. Pour tous les utilisateurs de base de données répertoriés dans Utilisateurs Oracle prédéfinis, mettez à jour les mots de passe en suivant les instructions de la section Modifier un AWS Secrets Manager secret.

  8. Si votre base de données est une base de données autonome ou une base de données source dans une configuration Oracle Data Guard :

    1. Démarrez votre SQL client Oracle et connectez-vous en tant queSYS.

    2. Exécutez une SQL instruction sous la forme suivante pour chaque utilisateur de base de données répertorié dans Utilisateurs Oracle prédéfinis :

      ALTER USER user-name IDENTIFIED BY pwd-from-secrets-manager ACCOUNT UNLOCK;

      Par exemple, si le nouveau mot de passe pour RDSADMIN enregistré dans Secrets Manager est pwd-123, exécutez l'instruction suivante :

      ALTER USER RDSADMIN IDENTIFIED BY pwd-123 ACCOUNT UNLOCK;
  9. Si votre instance de base de données exécute Oracle Database 12c version 1 (12.1) et qu'elle est gérée par Oracle Data Guard, copiez manuellement le fichier de mots de passe (orapw) de l'instance de base de données principale vers chaque instance de base de données de secours.

    Si votre instance de base de données est hébergée sur AmazonRDS, l'emplacement du fichier de mots de passe est/rdsdbdata/config/orapw. Pour les bases de données qui ne sont pas hébergées $ORACLE_HOME/dbs/orapw$ORACLE_SID sur AmazonRDS, l'emplacement par défaut est sous %ORACLE_HOME%\database\PWD%ORACLE_SID%.ora Linux UNIX et Windows.