Warum kann ich eine KMS-Schlüsselrichtlinie in AWS KMS nicht lesen oder aktualisieren?

Letzte Aktualisierung: 26.08.2021

Ich möchte eine AWS KMS-Schlüsselrichtlinie in AWS Key Management Service (AWS KMS) aktualisieren. Ich habe überprüft, dass ich Administratorberechtigungen für meine AWS Identity and Access Management (IAM)-Identitäten (Benutzer, Gruppen und Rollen) habe, aber ich kann die KMS-Schlüsselrichtlinie nicht lesen oder aktualisieren.

Kurzbeschreibung

IAM-Hauptzugriffsberechtigte benötigen die API-Aktionsberechtigung GetKeyPolicy, um eine Schlüsselrichtlinie lesen zu können, und PutKeyPolicy, um eine Richtlinie zu aktualisieren. Diese Berechtigungen werden entweder direkt mit der Schlüsselrichtlinie oder einer Kombination aus Schlüssel- und IAM-Richtlinien erteilt. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf AWS KMS-Schlüssel.

Die standardmäßige KMS-Schlüssel-IAM-Richtlinie enthält eine Anweisung ähnlich der folgenden:

{
  "Sid": "Enable IAM User Permissions",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:root"
  },
  "Action": "kms:*",
  "Resource": "*"
}

Die IAM-Entitäten für das AWS-Konto 111122223333 können alle in der angehängten Richtlinie zulässigen AWS KMS-Aktionen ausführen. Wenn die Entitäten keine API-Aktionen wie GetKeyPolicy oder PutKeyPolicy ausführen können, selbst wenn Berechtigungen in ihren angehängten Richtlinien zulässig sind, hat sich die Anweisung „IAM-Benutzerberechtigungen aktivieren“ möglicherweise geändert.

Lösung

Überprüfen der Berechtigungen für IAM-Richtlinien

Stellen Sie sicher, dass Ihre IAM-Entitäten die Berechtigung haben, einen KMS-Schlüssel zu lesen und zu aktualisieren, ähnlich der folgenden IAM-Richtlinie:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:Create*",
        "kms:Describe*",
        "kms:Enable*",
        "kms:List*",
        "kms:Put*",
        "kms:Update*",
        "kms:Revoke*",
        "kms:Disable*",
        "kms:Get*",
        "kms:Delete*",
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ScheduleKeyDeletion",
        "kms:CancelKeyDeletion"
      ],
      "Resource": "arn:aws:kms:*:111122223333:key/*"
    }
  ]
}

Verwenden des CloudTrail-Ereignisverlaufs

1.    Öffnen Sie die AWS CloudTrail-Konsole und wählen Sie dann Ereignisverlauf.

2.    Wählen Sie die Dropdown-Liste Lookup-Attribute aus und wählen Sie dann Ereignisname.

3.    Geben Sie im Suchfenster PutKeyPolicy ein.

4.    Öffnen Sie das letzte PutKeyPolicy-Ereignis.

5.    Kopieren Sie die Richtlinie im Ereignisdatensatz und fügen Sie sie in Ihren bevorzugten Texteditor ein.

6.    Übertragen Sie die Richtlinie in ein lesbares Format.

7.    Beachten Sie in der IAM-Richtlinie Sid „Zugriff für Schlüsseladministratoren zulassen“ die IAM-Identitätsadministratoren ähnlich den folgenden:

{
  "Sid": "Allow access for Key Administrators",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::111122223333:role/Administrator"
    ]
   },

Schlüsseladministratoren können dann verwendet werden, um wieder Zugriff auf den Schlüssel zu erhalten.

Verwenden der Athena-Abfragen

Wenn das Ereignis des CloudTrail-Ereignisverlaufs mehr als 90 Tage zurückliegt, können Sie Amazon Athena verwenden, um CloudTrail-Protokolle zu durchsuchen.

Anweisungen finden Sie unter Verwenden der CloudTrail-Konsole zum Erstellen einer Athena-Tabelle für CloudTrail-Protokolle.

Weitere Informationen finden Sie unter Wie erstelle ich automatisch Tabellen in Athena, um CloudTrail-Protokolle zu durchsuchen?


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?