Konfigurieren von Zugriffsrichtlinien für Performance Insights - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren von Zugriffsrichtlinien für Performance Insights

Um auf Performance Insights zugreifen zu können, muss ein Principal über die entsprechenden Berechtigungen von AWS Identity and Access Management (IAM) verfügen. Sie können den Zugriff wie folgt erteilen:

  • Fügen Sie die AmazonRDSPerformanceInsightsReadOnly-verwaltete Richtlinie an einen Berechtigungssatz oder eine Rolle an, um auf alle schreibgeschützten Operationen der Performance-Insights-API zuzugreifen.

  • Fügen Sie die AmazonRDSPerformanceInsightsFullAccess-verwaltete Richtlinie an einen Berechtigungssatz oder eine Rolle an, um auf alle Operationen der Performance-Insights-API zuzugreifen.

  • Erstellen Sie eine benutzerdefinierte IAM-Richtlinie und fügen Sie diese an einen Berechtigungssatz oder eine Rolle an.

Wenn Sie bei der Aktivierung von Performance Insights einen vom Kunden verwalteten Schlüssel angegeben haben, stellen Sie sicher, dass die Benutzer in Ihrem Konto die kms:GenerateDataKey Berechtigungen kms:Decrypt und für AWS KMS key

Anhängen der AmazonRDSPerformanceInsightsReadOnly Richtlinie an einen IAM-Prinzipal

AmazonRDSPerformanceInsightsReadOnlyist eine AWS verwaltete Richtlinie, die Zugriff auf alle schreibgeschützten Operationen der Amazon RDS Performance Insights-API gewährt.

Wenn Sie AmazonRDSPerformanceInsightsReadOnly an einen Berechtigungssatz oder eine Rolle anfügen, kann der Empfänger Performance Insights mit anderen Konsolenfunktionen verwenden.

Weitere Informationen finden Sie unter AWS Von verwaltete Richtlinie: AmazonRDSPerformanceInsightsReadOnly.

Anhängen der AmazonRDSPerformanceInsightsFullAccess Richtlinie an einen IAM-Prinzipal

AmazonRDSPerformanceInsightsFullAccessist eine AWS verwaltete Richtlinie, die Zugriff auf alle Operationen der Amazon RDS Performance Insights API gewährt.

Wenn Sie AmazonRDSPerformanceInsightsFullAccess an einen Berechtigungssatz oder eine Rolle anfügen, kann der Empfänger Performance Insights mit anderen Konsolenfunktionen verwenden.

Weitere Informationen finden Sie unter AWS Von verwaltete Richtlinie: AmazonRDSPerformanceInsightsFullAccess.

Erstellen einer benutzerdefinierten IAM-Richtlinie für Performance Insights

Benutzern, die nicht über die AmazonRDSPerformanceInsightsFullAccess Richtlinie AmazonRDSPerformanceInsightsReadOnly oder verfügen, können Sie Zugriff auf Performance Insights gewähren, indem Sie eine benutzerverwaltete IAM-Richtlinie erstellen oder ändern. Wenn Sie diese Richtlinie an einen IAM-Berechtigungssatz oder eine Rolle anfügen, kann der Empfänger Performance Insights verwenden.

Erstellen eine benutzerdefinierten Richtlinie
  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Policies aus.

  3. Wählen Sie Richtlinie erstellen aus.

  4. Wählen Sie auf der Seite „Richtlinie erstellen“ die Option JSON aus.

  5. Kopieren Sie den Text, der im Abschnitt JSON-Richtliniendokument im Referenzhandbuch für AWS verwaltete Richtlinien für AmazonRDSPerformanceInsightsReadOnlyunsere Richtlinie bereitgestellt wird, und fügen Sie ihn ein. AmazonRDSPerformanceInsightsFullAccess

  6. Wählen Sie Richtlinie prüfen.

  7. Geben Sie einen Namen und optional eine Beschreibung für die Richtlinie an und wählen Sie dann Create policy (Richtlinie erstellen) aus.

Sie können die Richtlinie nun an einen Berechtigungssatz oder eine Rolle anfügen. Das folgende Verfahren setzt voraus, dass Sie für diesen Zweck bereits einen Benutzer zur Verfügung haben.

So fügen Sie die Richtlinie an einen Benutzer an
  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Klicken Sie im Navigationsbereich auf Users (Benutzer).

  3. Wählen Sie einen vorhandenen Benutzer aus der Liste aus.

    Wichtig

    Um Performance Insights verwenden zu können, benötigen Sie zusätzlich zur benutzerdefinierten Richtlinie Zugriff auf Amazon RDS. Beispielsweise bietet die vordefinierte Richtlinie AmazonRDSPerformanceInsightsReadOnly schreibgeschützten Zugriff auf Amazon RDS. Weitere Informationen finden Sie unter Verwalten des Zugriffs mit Richtlinien.

  4. Wählen Sie auf der Seite Übersicht die Option Add permissions (Berechtigungen hinzufügen) aus.

  5. Wählen Sie Attach existing policies directly (Vorhandene Richtlinien direkt zuordnen). Geben Sie unter Suchen die ersten Zeichen Ihres Richtliniennamens ein, wie in der folgenden Abbildung gezeigt.

    Auswählen einer Richtlinie
  6. Wählen Sie Ihre Richtlinie und wählen Sie anschließend Nächster Schritt: Prüfen.

  7. Wählen Sie Add permissions (Berechtigungen hinzufügen) aus.

Konfigurieren einer AWS KMS -Richtlinie für Performance Insights

Performance Insights verwendet an AWS KMS key , um sensible Daten zu verschlüsseln. Wenn Sie Performance Insights über die API oder die Konsole aktivieren, haben Sie folgende Möglichkeiten:

  • Wählen Sie die Standardeinstellung Von AWS verwalteter Schlüssel.

    Amazon RDS verwendet die Von AWS verwalteter Schlüssel für Ihre neue DB-Instance. Amazon RDS erstellt einen Von AWS verwalteter Schlüssel für Ihr AWS-Konto. Ihr AWS-Konto hat für jeden ein anderes Von AWS verwalteter Schlüssel für Amazon RDS AWS-Region.

  • Wählen Sie einen kundenverwalteten Schlüssel.

    Wenn Sie einen vom Kunden verwalteten Schlüssel angeben, benötigen Benutzer in Ihrem Konto, die die Performance Insights API aufrufen, die Berechtigungen kms:Decrypt und kms:GenerateDataKey für den KMS-Schlüssel. Sie können diese Berechtigungen über IAM-Richtlinien konfigurieren. Wir empfehlen jedoch, dass Sie diese Berechtigungen über Ihre KMS-Schlüsselrichtlinie verwalten. Weitere Informationen finden Sie unter Schlüsselrichtlinien in AWS KMS im Entwicklerhandbuch für AWS Key Management Service .

Das folgende Beispiel zeigt, wie Sie Ihrer KMS-Schlüsselrichtlinie Anweisungen hinzufügen können. Diese Anweisungen erlaubt den Zugriff auf Performance Insights. Je nachdem, wie Sie den KMS-Schlüssel verwenden, möchten Sie möglicherweise einige Einschränkungen ändern. Bevor Sie Ihrer Richtlinie Anweisungen hinzufügen, entfernen Sie alle Kommentare.

{ "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" } } }

So verwendet Performance Insights vom AWS KMS Kunden verwaltete Schlüssel

Performance Insights verwendet vom Kunden verwaltete Schlüssel, um vertrauliche Daten zu verschlüsseln. Wenn Sie Performance Insights aktivieren, können Sie einen AWS KMS -Schlüssel über die API bereitstellen. Performance Insights erstellt KMS-Berechtigungen für diesen Schlüssel. Das Feature verwendet den Schlüssel und führt die erforderlichen Operationen aus, um vertrauliche Daten zu verarbeiten. Zu den vertraulichen Daten gehören Felder wie Benutzer, Datenbank, Anwendung und SQL-Abfragetext. Performance Insights stellt sicher, dass die Daten sowohl im Ruhezustand als auch während der Übertragung verschlüsselt bleiben.

So arbeitet Performance Insights IAM mit AWS KMS

IAM erteilt Berechtigungen für spezifische APIs. Performance Insights verfügt über die folgenden öffentlichen APIs, die Sie mithilfe von IAM-Richtlinien einschränken können:

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

  • GetResourceMetadata

  • GetResourceMetrics

  • ListAvailableResourceDimensions

  • ListAvailableResourceMetrics

Sie können die folgenden API-Abfragen verwenden, um vertrauliche Daten abzurufen.

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

  • GetResourceMetrics

Wenn Sie die API verwenden, um vertrauliche Daten abzurufen, nutzt Performance Insights die Anmeldeinformationen des Aufrufers. Diese Überprüfung stellt sicher, dass der Zugriff auf vertrauliche Daten auf Benutzer beschränkt ist, die Zugriff auf den KMS-Schlüssel haben.

Wenn Sie diese APIs aufrufen, benötigen Sie Berechtigungen zum Aufrufen der API über die IAM-Richtlinie und Berechtigungen zum Aufrufen der kms:decrypt Aktion über die AWS KMS Schlüsselrichtlinie.

Die API GetResourceMetrics kann sowohl vertrauliche als auch nicht vertrauliche Daten zurückgeben. Die Anforderungsparameter bestimmen, ob die Antwort vertrauliche Daten enthalten soll. Die API gibt vertrauliche Daten zurück, wenn die Anfrage eine vertrauliche Dimension im Filter- oder Group-by-Parameter enthält.

Weitere Informationen zu den Dimensionen, die Sie mit der GetResourceMetrics API verwenden können, finden Sie unter. DimensionGroup

Beispiele

Im folgenden Beispiel werden die vertraulichen Daten für die Gruppe db.user angefordert:

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 }

Im folgenden Beispiel werden die nicht vertraulichen Daten für die Metrik db.load.avg angefordert:

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 }

Gewährung eines detaillierten Zugriffs für Performance Insights

Eine differenzierte Zugriffskontrolle bietet zusätzliche Möglichkeiten, den Zugriff auf Performance Insights zu kontrollieren. Diese Zugriffskontrolle kann den Zugriff auf einzelne Dimensionen für GetResourceMetricsDescribeDimensionKeys, und GetDimensionKeyDetails Performance Insights Insights-Aktionen zulassen oder verweigern. Um einen differenzierten Zugriff zu verwenden, geben Sie Dimensionen in der IAM-Richtlinie mithilfe von Bedingungsschlüsseln an. Die Bewertung des Zugriffs folgt der Bewertungslogik der IAM-Richtlinie. Weitere Informationen finden Sie unter Bewertungslogik für Richtlinien im IAM-Benutzerhandbuch. Wenn in der IAM-Richtlinienanweisung keine Dimension angegeben ist, steuert die Anweisung den Zugriff auf alle Dimensionen für die angegebene Aktion. Eine Liste der verfügbaren Dimensionen finden Sie unter DimensionGroup.

Um herauszufinden, auf welche Dimensionen Ihre Anmeldeinformationen zugreifen dürfen, verwenden Sie den AuthorizedActions Parameter in ListAvailableResourceDimensions und geben Sie die Aktion an. Die zulässigen Werte für AuthorizedActions lauten wie folgt:

  • GetResourceMetrics

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

Wenn Sie den AuthorizedActions Parameter beispielsweise angebenGetResourceMetrics, wird die Liste der Dimensionen ListAvailableResourceDimensions zurückgegeben, auf die die GetResourceMetrics Aktion zugreifen darf. Wenn Sie im AuthorizedActions Parameter mehrere Aktionen angeben, wird ein Schnittpunkt von Dimensionen ListAvailableResourceDimensions zurückgegeben, auf die diese Aktionen zugreifen dürfen.

Das folgende Beispiel bietet Zugriff auf die angegebenen Dimensionen GetResourceMetrics und DescribeDimensionKeys Aktionen.

{ "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" ] } } } ] }

Im Folgenden finden Sie die Antwort für die angeforderte Dimension:

// 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" } ] } ] } ] }

Im folgenden Beispiel wird für die Dimensionen eine Option „Zulassen“ und zwei „Zugriff verweigern“ angegeben.

{ "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" ] } } } ] }

Im Folgenden finden Sie die Antworten für die angeforderten Dimensionen:

// 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" } ] }, ... ] } ] }