Configuration des politiques d'accès pour Performance Insights - 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.

Configuration des politiques d'accès pour Performance Insights

Pour accéder à Performance Insights, un directeur doit disposer des autorisations appropriées auprès de AWS Identity and Access Management (IAM). Vous pouvez accorder l'accès des manières suivantes :

  • Attachez la politique gérée par AmazonRDSPerformanceInsightsReadOnly à un ensemble d'autorisations ou à un rôle permettant d'accéder à toutes les opérations en lecture seule de l'API Performance Insights.

  • Attachez la politique gérée par AmazonRDSPerformanceInsightsFullAccess à un ensemble d'autorisations ou à un rôle permettant d'accéder à toutes les opérations de l'API Performance Insights.

  • Créez une politique IAM personnalisée et attachez-la à un jeu d'autorisations ou à un rôle.

Si vous avez spécifié une clé gérée par le client lorsque vous avez activé Performance Insights, assurez-vous que les utilisateurs de votre compte disposent des kms:GenerateDataKey autorisations kms:Decrypt et sur le AWS KMS key

Associer la AmazonRDSPerformanceInsightsReadOnly politique à un directeur IAM

AmazonRDSPerformanceInsightsReadOnlyest une politique AWS gérée qui donne accès à toutes les opérations en lecture seule de l'API Amazon RDS Performance Insights.

Si vous attachez AmazonRDSPerformanceInsightsReadOnly à un jeu d'autorisations ou à un rôle, le destinataire peut utiliser Performance Insights avec d'autres fonctions de la console.

Pour plus d’informations, consultez AWS politique gérée : AmazonRDS PerformanceInsightsReadOnly.

Associer la AmazonRDSPerformanceInsightsFullAccess politique à un directeur IAM

AmazonRDSPerformanceInsightsFullAccessest une politique AWS gérée qui donne accès à toutes les opérations de l'API Amazon RDS Performance Insights.

Si vous attachez AmazonRDSPerformanceInsightsFullAccess à un jeu d'autorisations ou à un rôle, le destinataire peut utiliser Performance Insights avec d'autres fonctions de la console.

Pour plus d’informations, consultez AWS politique gérée : AmazonRDS PerformanceInsightsFullAccess.

Création d'une politique IAM personnalisée pour Performance Insights

Pour les utilisateurs qui ne disposent pas de la AmazonRDSPerformanceInsightsFullAccess politique AmazonRDSPerformanceInsightsReadOnly OR, vous pouvez accorder l'accès à Performance Insights en créant ou en modifiant une politique IAM gérée par l'utilisateur. Quand vous attachez la politique à un jeu d'autorisations ou à un rôle IAM, le destinataire peut utiliser Performance Insights.

Pour créer une politique personnalisée
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Policies (Politiques).

  3. Sélectionnez Create policy (Créer une politique).

  4. Sur la page Créer une politique, choisissez l'option JSON.

  5. Copiez et collez le texte fourni dans la section du document de politique JSON du Guide de référence des politiques AWS gérées pour AmazonRDSPerformanceInsightsReadOnlynotre AmazonRDSPerformanceInsightsFullAccesspolitique.

  6. Choisissez Examiner une stratégie.

  7. Indiquez un nom pour la stratégie et éventuellement une description, puis choisissez Créer une stratégie.

Vous pouvez désormais attacher la politique à un jeu d'autorisations ou à un rôle. La procédure suivante suppose que vous disposez déjà d'un utilisateur à cette fin.

Pour attacher la politique à un utilisateur
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, sélectionnez Users.

  3. Choisissez un utilisateur existant dans la liste.

    Important

    Pour utiliser Performance Insights, assurez-vous que vous avez accès à Amazon RDS en plus de l'accès à la politique personnalisée. Par exemple, la stratégie prédéfinie AmazonRDSPerformanceInsightsReadOnly fournit un accès en lecture seule à Amazon RDS. Pour plus d'informations, consultez Gestion des accès à l’aide de politiques.

  4. Sur la page Récapitulatif, choisissez Ajouter des autorisations.

  5. Choisissez Attacher directement les stratégies existantes. Dans le champ Rechercher, saisissez les premiers caractères du nom de votre police, comme indiqué dans l'image suivante.

    Choisissez une politique
  6. Choisissez votre stratégie, puis sélectionnez Suivant : Vérification.

  7. Choisissez Add permissions.

Configuration d'une politique AWS KMS pour Performance Insights

Performance Insights utilise un AWS KMS key pour chiffrer les données sensibles. Lorsque vous activez Performance Insights via l'API ou la console, vous pouvez effectuer l'une ou l'autre des opérations suivantes :

  • Choisissez la valeur par défaut Clé gérée par AWS.

    Amazon RDS utilise le Clé gérée par AWS pour votre nouvelle instance de base de données. Amazon RDS crée une Clé gérée par AWS pour votre Compte AWS. Vous Compte AWS avez un Amazon RDS différent Clé gérée par AWS pour chacun Région AWS d'entre eux.

  • Choisissez une clé gérée par le client.

    Si vous spécifiez une clé gérée par le client, les utilisateurs de votre compte qui appellent l'API Performance Insights ont besoin des autorisations kms:Decrypt et kms:GenerateDataKey sur la clé KMS. Vous pouvez configurer ces autorisations via des politiques IAM. Toutefois, nous vous recommandons de gérer ces autorisations via votre politique de clé KMS. Pour plus d’informations, consultez Politiques de clé dans AWS KMS dans le Guide du développeur AWS Key Management Service .

L'exemple suivant montre comment ajouter des instructions à votre politique KMS. Ces instructions permettent d'accéder à Performance Insights. Selon la façon dont vous utilisez la clé KMS, vous pouvez modifier certaines restrictions. Avant d'ajouter des instructions à votre politique, supprimez tous les commentaires.

{ "Version" : "2012-10-17", "Id" : "your-policy", "Statement" : [ { //This represents a statement that currently exists in your policy. } ...., //Starting here, add new statement to your policy for Performance Insights. //We recommend that you add one new statement for every RDS instance { "Sid" : "Allow viewing RDS Performance Insights", "Effect": "Allow", "Principal": { "AWS": [ //One or more principals allowed to access Performance Insights "arn:aws:iam::444455556666:role/Role1" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition" : { "StringEquals" : { //Restrict access to only RDS APIs (including Performance Insights). //Replace region with your AWS Region. //For example, specify us-west-2. "kms:ViaService" : "rds.region.amazonaws.com" }, "ForAnyValue:StringEquals": { //Restrict access to only data encrypted by Performance Insights. "kms:EncryptionContext:aws:pi:service": "rds", "kms:EncryptionContext:service": "pi", //Restrict access to a specific RDS instance. //The value is a DbiResourceId. "kms:EncryptionContext:aws:rds:db-id": "db-AAAAABBBBBCCCCDDDDDEEEEE" } } }

Comment Performance Insights utilise les clés gérées par le AWS KMS client

L'analyse des performances utilise les clés gérées par le client pour chiffrer les données sensibles. Lorsque vous activez l'analyse des performances, vous pouvez fournir une clé AWS KMS via l'API. L'analyse des performances crée des autorisations KMS sur cette clé. Il utilise la clé et effectue les opérations nécessaires au traitement des données sensibles. Les données sensibles incluent des champs tels que l'utilisateur, la base de données, l'application et le texte de requête SQL. L'analyse des performances garantit que les données restent chiffrées à la fois au repos et en transit.

Comment fonctionne Performance Insights IAM AWS KMS

IAM donne des autorisations à des API spécifiques. L'analyse des performances possède les API publiques suivantes, que vous pouvez restreindre à l'aide de politiques IAM :

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

  • GetResourceMetadata

  • GetResourceMetrics

  • ListAvailableResourceDimensions

  • ListAvailableResourceMetrics

Vous pouvez utiliser les demandes d'API suivantes pour obtenir des données sensibles.

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

  • GetResourceMetrics

Lorsque vous utilisez l'API pour obtenir des données sensibles, l'analyse des performances exploite les informations d'identification de l'appelant. Cette vérification garantit que l'accès aux données sensibles est limité aux personnes ayant accès à la clé KMS.

Lorsque vous appelez ces API, vous avez besoin d'autorisations pour appeler l'API via la politique IAM et d'autorisations pour invoquer l'kms:decryptaction via la politique AWS KMS clé.

L'API GetResourceMetrics peut renvoyer des données sensibles et non sensibles. Les paramètres de demande déterminent si la réponse doit inclure des données sensibles. L'API renvoie des données sensibles lorsque la demande inclut une dimension sensible dans les paramètres de filtre ou de regroupement.

Pour plus d'informations sur les dimensions que vous pouvez utiliser avec l'GetResourceMetricsAPI, consultez DimensionGroup.

Exemples

L'exemple suivant demande les données sensibles pour le groupe db.user :

POST / HTTP/1.1 Host: <Hostname> Accept-Encoding: identity X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics Content-Type: application/x-amz-json-1.1 User-Agent: <UserAgentString> X-Amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "MetricQueries": [ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.user", "Limit": 2 } } ], "StartTime": 1693872000, "EndTime": 1694044800, "PeriodInSeconds": 86400 }

L'exemple suivant demande les données non sensibles pour la métrique db.load.avg :

POST / HTTP/1.1 Host: <Hostname> Accept-Encoding: identity X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics Content-Type: application/x-amz-json-1.1 User-Agent: <UserAgentString> X-Amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "MetricQueries": [ { "Metric": "db.load.avg" } ], "StartTime": 1693872000, "EndTime": 1694044800, "PeriodInSeconds": 86400 }

Octroi d'un accès détaillé à Performance Insights

Le contrôle d'accès précis offre des moyens supplémentaires de contrôler l'accès à Performance Insights. Ce contrôle d'accès peut autoriser ou refuser l'accès à des dimensions individuelles pour GetResourceMetrics DescribeDimensionKeys les actions GetDimensionKeyDetails Performance Insights. Pour utiliser un accès détaillé, spécifiez les dimensions dans la politique IAM à l'aide de clés de condition. L'évaluation de l'accès suit la logique d'évaluation de la politique IAM. Pour plus d'informations, consultez la section Logique d'évaluation des politiques dans le guide de l'utilisateur IAM. Si la déclaration de politique IAM ne spécifie aucune dimension, elle contrôle l'accès à toutes les dimensions pour l'action spécifiée. Pour la liste des dimensions disponibles, voir DimensionGroup.

Pour connaître les dimensions auxquelles vos informations d'identification sont autorisées à accéder, utilisez le AuthorizedActions paramètre ListAvailableResourceDimensions et spécifiez l'action. Les valeurs autorisées pour AuthorizedActions sont les suivantes :

  • GetResourceMetrics

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

Par exemple, si vous spécifiez GetResourceMetrics le AuthorizedActions paramètre, ListAvailableResourceDimensions renvoie la liste des dimensions auxquelles l'GetResourceMetricsaction est autorisée à accéder. Si vous spécifiez plusieurs actions dans le AuthorizedActions paramètre, il ListAvailableResourceDimensions renvoie une intersection de dimensions auxquelles ces actions sont autorisées à accéder.

L'exemple suivant fournit l'accès aux dimensions GetResourceMetrics et aux DescribeDimensionKeys actions spécifiées.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowToDiscoverDimensions", "Effect": "Allow", "Action": [ "pi:ListAvailableResourceDimensions" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ] }, { "Sid": "SingleAllow", "Effect": "Allow", "Action": [ "pi:GetResourceMetrics", "pi:DescribeDimensionKeys" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ], "Condition": { "ForAllValues:StringEquals": { // only these dimensions are allowed. Dimensions not included in // a policy with "Allow" effect will be denied "pi:Dimensions": [ "db.sql_tokenized.id", "db.sql_tokenized.statement" ] } } } ] }

Voici la réponse pour la dimension demandée :

// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["DescribeDimensionKeys"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, // { "Identifier": "db.sql_tokenized.db_id" }, // not included because not allows in the IAM Policy { "Identifier": "db.sql_tokenized.statement" } ] } ] } ] }

L'exemple suivant indique une autorisation et deux refus d'accès pour les dimensions.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowToDiscoverDimensions", "Effect": "Allow", "Action": [ "pi:ListAvailableResourceDimensions" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ] }, { "Sid": "O01AllowAllWithoutSpecifyingDimensions", "Effect": "Allow", "Action": [ "pi:GetResourceMetrics", "pi:DescribeDimensionKeys" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ] }, { "Sid": "O01DenyAppDimensionForAll", "Effect": "Deny", "Action": [ "pi:GetResourceMetrics", "pi:DescribeDimensionKeys" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ], "Condition": { "ForAnyValue:StringEquals": { "pi:Dimensions": [ "db.application.name" ] } } }, { "Sid": "O01DenySQLForGetResourceMetrics", "Effect": "Deny", "Action": [ "pi:GetResourceMetrics" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ], "Condition": { "ForAnyValue:StringEquals": { "pi:Dimensions": [ "db.sql_tokenized.statement" ] } } } ] }

Voici les réponses aux dimensions demandées :

// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["GetResourceMetrics"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.application", "Dimensions": [ // removed from response because denied by the IAM Policy // { "Identifier": "db.application.name" } ] }, { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, { "Identifier": "db.sql_tokenized.db_id" }, // removed from response because denied by the IAM Policy // { "Identifier": "db.sql_tokenized.statement" } ] }, ... ] } ] }
// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["DescribeDimensionKeys"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.application", "Dimensions": [ // removed from response because denied by the IAM Policy // { "Identifier": "db.application.name" } ] }, { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, { "Identifier": "db.sql_tokenized.db_id" }, // allowed for DescribeDimensionKeys because our IAM Policy // denies it only for GetResourceMetrics { "Identifier": "db.sql_tokenized.statement" } ] }, ... ] } ] }