Autoriser l'accès à l'API de données Amazon RDS - Amazon Aurora

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.

Autoriser l'accès à l'API de données Amazon RDS

Les utilisateurs peuvent invoquer les opérations de l'API de données Amazon RDS (API de données) uniquement s'ils sont autorisés à le faire. Vous pouvez autoriser un utilisateur à utiliser l'API de données en joignant une politique AWS Identity and Access Management (IAM) qui définit ses privilèges. Vous pouvez également attacher la politique à un rôle si vous utilisez les rôles IAM. Une politique AWS gérée inclut AmazonRDSDataFullAccess des autorisations pour l'API de données.

La AmazonRDSDataFullAccess politique inclut également des autorisations permettant à l'utilisateur d'obtenir la valeur d'un secret AWS Secrets Manager. Les utilisateurs doivent utiliser Secrets Manager pour stocker des secrets qu'ils peuvent utiliser dans leurs appels à l'API de données. L'utilisation de secrets signifie que les utilisateurs n'ont pas besoin d'inclure les informations d'identification de base de données pour les ressources qu'ils ciblent dans leurs appels à l'API de données. L'API de données appelle de manière transparente Secrets Manager, qui autorise (ou refuse) la demande de secret de l'utilisateur. Pour plus d'informations sur la configuration des secrets à utiliser avec l'API de données, consultezStockage des identifiants de base de données dans AWS Secrets Manager.

La AmazonRDSDataFullAccess politique fournit un accès complet (via l'API de données) aux ressources. Vous pouvez limiter la portée en définissant vos propres politiques qui spécifient l'ARN (Amazon Resource Name) d'une ressource.

Par exemple, la politique suivante montre un exemple des autorisations minimales requises pour qu'un utilisateur accède à l'API de données pour le cluster de base de données identifié par son ARN. La politique comprend les autorisations nécessaires pour accéder à Secrets Manager et obtenir l'autorisation sur l'instance de base de données pour l'utilisateur.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerDbCredentialsAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:rds-db-credentials/*" }, { "Sid": "RDSDataServiceAccess", "Effect": "Allow", "Action": [ "rds-data:BatchExecuteStatement", "rds-data:BeginTransaction", "rds-data:CommitTransaction", "rds-data:ExecuteStatement", "rds-data:RollbackTransaction" ], "Resource": "arn:aws:rds:us-east-2:111122223333:cluster:prod" } ] }

Nous vous recommandons d'utiliser un ARN spécifique pour l'élément « Resources » dans les instructions de votre politique (comme indiqué dans l'exemple) plutôt qu'un caractère générique (*).

Utilisation de l'autorisation basée sur les balises

L'API de données RDS (API de données) et Secrets Manager prennent tous deux en charge l'autorisation basée sur des balises. Les balises sont des paires clé-valeur qui étiquettent une ressource, telle qu'un cluster RDS, avec une valeur de chaîne supplémentaire, par exemple :

  • environment:production

  • environment:development

Vous pouvez appliquer des balises à vos ressources pour la répartition des coûts, la prise en charge des opérations, le contrôle d'accès et bien d'autres raisons. (Si vous n'avez pas appliqué de balises à vos ressources et que vous souhaitez le faire, vous pouvez en savoir plus en consultant Balisage de ressources Amazon RDS.) Vous pouvez utiliser les balises de vos instructions de politique pour limiter l'accès aux clusters RDS étiquetés avec ces balises. Par exemple, un cluster de base de données Aurora peut avoir des balises qui identifient son environnement en tant que production ou développement.

L'exemple suivant montre comment utiliser les balises dans vos instructions de politique. Cette instruction exige que le cluster et le secret transmis dans la demande d'API de données aient une balise environment:production.

Voici comment la politique est appliquée : lorsqu'un utilisateur passe un appel à l'aide de l'API Data, la demande est envoyée au service. L'API de données vérifie d'abord que l'ARN du cluster transmis dans la demande est étiqueté avecenvironment:production. Elle appelle ensuite Secrets Manager pour récupérer la valeur du secret de l'utilisateur dans la requête. Secrets Manager vérifie également que le secret de l'utilisateur est étiqueté avec environment:production. Si tel est le cas, l'API de données utilise ensuite la valeur extraite en tant que mot de passe de base de données de l'utilisateur. Enfin, si cette valeur est également correcte, la demande d'API de données est appelée avec succès pour l'utilisateur.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerDbCredentialsAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:rds-db-credentials/*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": [ "production" ] } } }, { "Sid": "RDSDataServiceAccess", "Effect": "Allow", "Action": [ "rds-data:*" ], "Resource": "arn:aws:rds:us-east-2:111122223333:cluster:*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": [ "production" ] } } } ] }

L'exemple montre des actions distinctes pour rds-data et secretsmanager pour l'API de données et pour Secrets Manager. Cependant, vous pouvez combiner des actions et définir des conditions de balise de différentes manières afin de prendre en charge vos cas d'utilisation spécifiques. Pour de plus amples informations, veuillez consulter Utilisation des stratégies basées sur l'identité (stratégies IAM) pour Secrets Manager.

Dans l'élément « Condition » de la politique, vous pouvez choisir les clés de balise parmi les suivantes :

  • aws:TagKeys

  • aws:ResourceTag/${TagKey}

Pour en savoir plus sur les balises de ressources et sur leur utilisationaws:TagKeys, consultez la section Contrôle de l'accès aux AWS ressources à l'aide de balises de ressources.

Note

À la fois l'API de données et AWS Secrets Manager les utilisateurs autorisés. Si vous ne disposez pas des autorisations requises pour toutes les actions définies dans une stratégie, une erreur AccessDeniedException s'affiche.

Stockage des identifiants de base de données dans AWS Secrets Manager

Lorsque vous appelez l'API de données Amazon RDS (API de données), vous transmettez les informations d'identification du cluster de base de données Aurora en utilisant un secret dans Secrets Manager. Pour ce faire, vous devez spécifier le nom du secret ou son ARN (Amazon Resource Name).

Pour stocker les informations d'identification de cluster de base de données dans un secret
  1. Utilisez Secrets Manager pour créer un secret qui contient les informations d'identification du cluster de base de données Aurora.

    Pour obtenir des instructions, consultez la section Création d'un secret de base de données dans le Guide de l'utilisateur AWS Secrets Manager .

  2. Utilisez la console Secrets Manager pour afficher les détails du secret que vous avez créé ou exécutez la aws secretsmanager describe-secret AWS CLI commande.

    Notez le nom et l'ARN du secret. Vous pouvez les utiliser dans les appels à l'API Data.

Pour plus d'informations sur l'utilisation de Secrets Manager, consultez le Guide de l'utilisateur AWS Secrets Manager.

Pour comprendre comment Amazon Aurora assure la gestion des identités et des accès, veuillez consulter Comment Amazon Aurora fonctionne avec IAM.

Pour en savoir plus sur la création d'une stratégie IAM, consultez Création de stratégies IAM dans le IAM Guide de l'utilisateur. Pour en savoir plus sur l'ajout d'une stratégie IAM, consultez Ajout et suppression de stratégies IAM dans le IAM Guide de l'utilisateur.