Konfigurieren Sie AWS KMS wichtige Richtlinien für CloudTrail - AWS CloudTrail

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 Sie AWS KMS wichtige Richtlinien für CloudTrail

Sie können eine AWS KMS key auf drei Arten erstellen:

  • Die CloudTrail Konsole

  • Die AWS Management-Konsole

  • Die AWS CLI

Anmerkung

Wenn Sie in der CloudTrail Konsole einen KMS-Schlüssel erstellen, CloudTrail fügt er die erforderliche KMS-Schlüsselrichtlinie für Sie hinzu. Sie müssen die Richtlinienanweisungen nicht manuell hinzufügen. Siehe In CloudTrail der Konsole erstellte Standard-KMS-Schlüsselrichtlinie.

Wenn Sie einen KMS-Schlüssel in der AWS Verwaltung oder im erstellen AWS CLI, müssen Sie dem Schlüssel Richtlinienabschnitte hinzufügen, damit Sie ihn mit verwenden können CloudTrail. Die Richtlinie muss die Verwendung des Schlüssels zur Verschlüsselung Ihrer Protokolldateien und Ereignisdatenspeicher ermöglichen und den von Ihnen angegebenen Benutzern das Lesen von Protokolldateien in unverschlüsselter Form ermöglichen. CloudTrail

Weitere Informationen finden Sie in den folgenden Ressourcen:

Erforderliche Abschnitte mit den wichtigsten KMS-Richtlinien für die Verwendung mit CloudTrail

Wenn Sie einen KMS-Schlüssel mit der AWS Managementkonsole oder der erstellt haben AWS CLI, müssen Sie Ihrer KMS-Schlüsselrichtlinie mindestens die folgenden Anweisungen hinzufügen, damit sie verwendet werden kann CloudTrail.

Für Trails erforderliche Elemente der KMS-Schlüsselrichtlinie

  1. Aktivieren CloudTrail Sie die Berechtigungen zum Verschlüsseln von Protokollen. Siehe Gewähren von Verschlüsselungsberechtigungen.

  2. Aktivieren CloudTrail Sie die Berechtigungen zum Entschlüsseln von Protokollen. Siehe Gewähren von Entschlüsselungsberechtigungen. Wenn Sie einen vorhandenen S3 Bucket mit einem S3-Bucket-Schlüssel verwenden, sind kms:Decrypt Berechtigungen erforderlich, um einen Trail mit aktivierter SSE-KMS-Verschlüsselung zu erstellen oder zu aktualisieren.

  3. Aktivieren Sie CloudTrail diese Option, um Eigenschaften von KMS-Schlüsseln zu beschreiben. Siehe Aktivieren Sie CloudTrail diese Option, um KMS-Schlüsseleigenschaften zu beschreiben.

Als bewährte Sicherheitsmethode gilt es, der KMS-Schlüsselrichtlinie einen aws:SourceArn-Bedingungsschlüssel hinzuzufügen. Mit dem globalen IAM-Bedingungsschlüssel wird aws:SourceArn sichergestellt, dass der KMS-Schlüssel nur für einen oder mehrere bestimmte Pfade CloudTrail verwendet wird. Der Wert von aws:SourceArn ist immer der Trail-ARN (oder ein Array von Trail-ARNs), der den KMS-Schlüssel verwendet. Denken Sie daran, den aws:SourceArn-Bedingungsschlüssel KMS-Schlüsselrichtlinien für bestehende Trails hinzuzufügen.

Der aws:SourceAccount-Bedingungsschlüssel wird ebenfalls unterstützt, aber nicht empfohlen. Der Wert von aws:SourceAccount ist die Konto-ID des Trail-Besitzers oder die Verwaltungskonto-ID für Organisations-Trails.

Wichtig

Ändern Sie beim Hinzufügen der neuen Abschnitte zur KMS-Schlüsselrichtlinie keinen der vorhandenen Abschnitte.

Wenn die Verschlüsselung für einen Trail aktiviert und der KMS-Schlüssel deaktiviert ist oder die KMS-Schlüsselrichtlinie nicht richtig konfiguriert ist CloudTrail, CloudTrail können keine Protokolle übermittelt werden.

Für Ereignisdatenspeicher erforderliche Elemente der KMS-Schlüsselrichtlinie

  1. Aktivieren CloudTrail Sie die Berechtigungen zum Verschlüsseln von Protokollen. Siehe Gewähren von Verschlüsselungsberechtigungen.

  2. Aktivieren CloudTrail Sie die Berechtigungen zum Entschlüsseln von Protokollen. Siehe Gewähren von Entschlüsselungsberechtigungen.

  3. Erteilen Sie Benutzern und Rollen die Berechtigung zum Ver- und Entschlüsseln von Daten aus einem Ereignisdatenspeicher mit dem KMS-Schlüssel.

    Wenn Sie einen Ereignisdatenspeicher erstellen und ihn mit einem KMS-Schlüssel verschlüsseln oder Abfragen in einem Ereignisdatenspeicher ausführen, den Sie mit einem KMS-Schlüssel verschlüsseln, benötigen Sie Schreibzugriff auf den KMS-Schlüssel. Die KMS-Schlüsselrichtlinie muss Zugriff auf den Ereignisdatenspeicher haben CloudTrail, und der KMS-Schlüssel sollte von Benutzern verwaltet werden können, die Operationen (z. B. Abfragen) im Ereignisdatenspeicher ausführen.

  4. Aktivieren Sie CloudTrail diese Option, um KMS-Schlüsseleigenschaften zu beschreiben. Siehe Aktivieren Sie CloudTrail diese Option, um KMS-Schlüsseleigenschaften zu beschreiben.

Die Bedingungsschlüssel aws:SourceArn und aws:SourceAccount werden in KMS-Schlüsselrichtlinien für Ereignisdatenspeicher nicht unterstützt.

Wichtig

Ändern Sie beim Hinzufügen der neuen Abschnitte zur KMS-Schlüsselrichtlinie keinen der vorhandenen Abschnitte.

Wenn die Verschlüsselung in einem Ereignisdatenspeicher aktiviert ist und der KMS-Schlüssel deaktiviert oder gelöscht ist oder die KMS-Schlüsselrichtlinie nicht richtig konfiguriert ist CloudTrail, CloudTrail können keine Ereignisse an Ihren Ereignisdatenspeicher übermittelt werden.

Gewähren von Verschlüsselungsberechtigungen

Beispiel Erlauben CloudTrail Sie die Verschlüsselung von Protokollen für bestimmte Konten

CloudTrail benötigt die ausdrückliche Genehmigung, den KMS-Schlüssel zum Verschlüsseln von Protokollen für bestimmte Konten zu verwenden. Um ein Konto anzugeben, fügen Sie der KMS-Schlüsselrichtlinie die folgende erforderliche Anweisung hinzu und ersetzen Sie account-id, region und trailName durch die entsprechenden Werte für Ihre Konfiguration. Sie können dem EncryptionContext Abschnitt zusätzliche Konto-IDs hinzufügen, damit diese Konten Ihren KMS-Schlüssel CloudTrail zum Verschlüsseln von Protokolldateien verwenden können.

Fügen Sie der KMS-Schlüsselrichtlinie für einen Trail als bewährte Sicherheitsmethode den Bedingungsschlüssel aws:SourceArn hinzu. Mit dem globalen IAM-Bedingungsschlüssel wird aws:SourceArn sichergestellt, dass der KMS-Schlüssel nur für einen oder mehrere bestimmte Pfade CloudTrail verwendet wird.

{ "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:account-id:trail/*" } } }

Eine Richtlinie für einen KMS-Schlüssel, der zur Verschlüsselung von CloudTrail Lake-Ereignisdatenspeicherprotokollen verwendet wird, kann die Bedingungsschlüssel aws:SourceArn oder nicht verwenden. aws:SourceAccount Im Folgenden finden Sie ein Beispiel für eine KMS-Schlüsselrichtlinie für einen Ereignisdatenspeicher.

{ "Sid": "Allow CloudTrail to encrypt event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

Das folgende Beispiel für eine Richtlinienanweisung veranschaulicht, wie ein anderes Konto Ihren KMS-Schlüssel zum Verschlüsseln CloudTrail von Protokollen verwenden kann.

Szenario
  • Ihr KMS-Schlüssel befindet sich im Konto 111111111111.

  • Sowohl Sie als auch das Konto 222222222222 verschlüsseln Protokolle.

In der Richtlinie fügen Sie ein oder mehrere Konten hinzu, die mit Ihrem Schlüssel verschlüsseln. CloudTrail EncryptionContext Dies beschränkt die CloudTrail Verwendung Ihres Schlüssels zum Verschlüsseln von Protokollen nur für die von Ihnen angegebenen Konten. Wenn Sie dem Stamm des Kontos 222222222222 die Berechtigung zur Protokollverschlüsselung erteilen, wird die Berechtigung an den Kontoverwalter delegiert, die erforderlichen Berechtigungen für andere Benutzer dieses Kontos zu verschlüsseln. Dies geschieht, indem der Kontoadministrator die diesen IAM-Benutzern zugeordneten Richtlinien ändert.

Als bewährte Sicherheitsmethode gilt es, der KMS-Schlüsselrichtlinie einen aws:SourceArn-Bedingungsschlüssel hinzuzufügen. Mit dem globalen IAM-Bedingungsschlüssel wird aws:SourceArn sichergestellt, dass der KMS-Schlüssel nur für die angegebenen Pfade CloudTrail verwendet wird. Diese Bedingung wird in KMS-Schlüsselrichtlinien für Ereignisdatenspeicher nicht unterstützt.

KMS-Schlüsselrichtlinie:

{ "Sid": "Enable CloudTrail encrypt permissions", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": [ "arn:aws:cloudtrail:*:111111111111:trail/*", "arn:aws:cloudtrail:*:222222222222:trail/*" ] }, "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

Weitere Informationen zum Bearbeiten einer KMS-Schlüsselrichtlinie zur Verwendung mit CloudTrail finden Sie unter Bearbeiten einer Schlüsselrichtlinie im AWS Key Management Service Entwicklerhandbuch.

Gewähren von Entschlüsselungsberechtigungen

Bevor Sie Ihren KMS-Schlüssel zu Ihrer CloudTrail Konfiguration hinzufügen, ist es wichtig, allen Benutzern, die diese benötigen, Entschlüsselungsberechtigungen zu erteilen. Benutzer, die zwar über Verschlüsselungs-, aber nicht über Entschlüsselungsberechtigungen verfügen, können verschlüsselte Protokolle nicht lesen. Wenn Sie einen vorhandenen S3-Bucket mit einem S3-Bucket-Schlüssel verwenden, sind kms:Decrypt-Berechtigungen erforderlich, um einen Trail mit aktivierter SSE-KMS-Verschlüsselung zu erstellen oder zu aktualisieren.

Aktivieren Sie die Berechtigungen zum Entschlüsseln von CloudTrail Protokollen

Benutzern Ihres Schlüssels müssen ausdrückliche Rechte zum Lesen der verschlüsselten Protokolldateien CloudTrail erteilt werden. Damit Benutzer verschlüsselte Protokolle lesen können, fügen Sie der KMS-Schlüsselrichtlinie die folgenden erforderlichen Anweisungen hinzu und fügen Sie dazu dem Abschnitt Principal für jeden Prinzipal, der zur Entschlüsselung mithilfe Ihres KMS-Schlüssel berechtigt sein soll, eine Zeile hinzu.

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die erforderlich ist, damit der CloudTrail Dienstprinzipal Trail-Logs entschlüsseln kann.

{ "Sid": "Allow CloudTrail to decrypt a trail", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Eine Entschlüsselungsrichtlinie für einen KMS-Schlüssel, der mit einem CloudTrail Lake-Ereignisdatenspeicher verwendet wird, ähnelt der folgenden. Die als Werte für Principal angegebenen Benutzer- oder Rollen-ARNs benötigen Entschlüsselungsberechtigungen, um Ereignisdatenspeicher erstellen oder aktualisieren, Abfragen ausführen oder Abfrageergebnisse abrufen zu können.

{ "Sid": "Enable user key permissions for event data stores" "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die erforderlich ist, damit der CloudTrail Dienstprinzipal die Protokolle des Ereignisdatenspeichers entschlüsseln kann.

{ "Sid": "Allow CloudTrail to decrypt an event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Zulassen, dass Benutzer in Ihrem Konto Trail-Protokolle mit Ihrem KMS-Schlüssel entschlüsseln

Beispiel

Diese Richtlinienanweisung zeigt, wie Sie es einem Benutzer oder einer Rolle in Ihrem Konto ermöglichen, Ihren Schlüssel zu verwenden, um verschlüsselte Protokolle im S3-Bucket Ihres Kontos zu lesen.

Beispiel Szenario
  • Ihr KMS-Schlüssel, der S3-Bucket und der IAM-Benutzer Bob befinden sich im Konto 111111111111.

  • Sie erteilen dem IAM-Benutzer Bob die Erlaubnis, CloudTrail Logs im S3-Bucket zu entschlüsseln.

In der Schlüsselrichtlinie aktivieren Sie die Berechtigungen zur CloudTrail Protokollentschlüsselung für den IAM-Benutzer Bob.

KMS-Schlüsselrichtlinie:

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/Bob" }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }
Themen

    Zulassen, dass Benutzer in anderen Konten Trail-Protokolle mit Ihrem KMS-Schlüssel entschlüsseln

    Sie können Benutzern in anderen Konten erlauben, mit Ihrem KMS-Schlüssel Trail-Protokolle zu entschlüsseln, aber keine Protokolle für Ereignisdatenspeicher. Die erforderlichen Änderungen an der Schlüsselrichtlinie sind abhängig davon, ob der S3-Bucket sich in Ihrem Konto oder in einem anderen Konto befindet.

    Zulassen der Entschlüsselung von Protokollen für Benutzer eines Buckets in einem anderen Konto

    Beispiel

    Diese Richtlinienanweisung zeigt, wie Sie einem IAM-Benutzer oder einer IAM-Rolle in einem anderen Konto ermöglichen, Ihren Schlüssel zu verwenden, um verschlüsselte Protokolle aus einem S3-Bucket in dem anderen Konto zu lesen.

    Szenario
    • Ihr KMS-Schlüssel befindet sich im Konto 111111111111.

    • Der IAM-Benutzer Alice und der S3-Bucket befinden sich im Konto 222222222222.

    In diesem Fall erteilen Sie unter dem Konto 222222222222 die CloudTrail Erlaubnis zum Entschlüsseln von Protokollen und Sie erteilen Alice in der IAM-Benutzerrichtlinie die Erlaubnis, Ihren Schlüssel zu verwendenKeyA, der sich im Konto befindet. 111111111111

    KMS-Schlüsselrichtlinie:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Anweisung in der IAM-Benutzerrichtlinie von Alice:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111111111111:key/KeyA" } ] }

    Zulassen, dass Benutzer in einem anderen Konto Trail-Protokolle aus Ihrem Bucket entschlüsseln

    Beispiel

    Diese Richtlinie zeigt, wie ein anderes Konto Ihren Schlüssel verwenden kann, um verschlüsselte Protokolle aus Ihrem S3-Bucket zu lesen.

    Beispiel Szenario
    • Ihr KMS-Schlüssel und S3-Bucket befinden sich in Konto 111111111111.

    • Der Benutzer, der Protokolle aus Ihrem Bucket liest, befindet sich in Konto 222222222222.

    Um dieses Szenario zu aktivieren, aktivieren Sie die Entschlüsselungsberechtigungen für die IAM-Rolle CloudTrailReadRolein Ihrem Konto und geben dann dem anderen Konto die Erlaubnis, diese Rolle anzunehmen.

    KMS-Schlüsselrichtlinie:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::11111111111:role/CloudTrailReadRole" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    CloudTrailReadRoleGrundsatzerklärung zur Vertrauensstelle:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "sts:AssumeRole" } ] }

    Informationen zum Bearbeiten einer KMS-Schlüsselrichtlinie zur Verwendung mit CloudTrail finden Sie unter Bearbeiten einer Schlüsselrichtlinie im AWS Key Management Service Entwicklerhandbuch.

    Aktivieren Sie CloudTrail diese Option, um KMS-Schlüsseleigenschaften zu beschreiben

    CloudTrail erfordert die Fähigkeit, die Eigenschaften des KMS-Schlüssels zu beschreiben. Um diese Funktion zu aktivieren, fügen Sie der KMS-Schlüssel-Richtlinie die folgende erforderliche Anweisung hinzu. Diese Anweisung gewährt CloudTrail keine Berechtigungen, die über die anderen von Ihnen angegebenen Berechtigungen hinausgehen.

    Als bewährte Sicherheitsmethode gilt es, der KMS-Schlüsselrichtlinie einen aws:SourceArn-Bedingungsschlüssel hinzuzufügen. Mit dem globalen IAM-Bedingungsschlüssel wird aws:SourceArn sichergestellt, dass der KMS-Schlüssel nur für einen oder mehrere bestimmte Pfade CloudTrail verwendet wird.

    { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

    Weitere Informationen zum Bearbeiten von KMS-Schlüsselrichtlinien finden Sie unter Bearbeiten einer Schlüsselrichtlinie im AWS Key Management Service -Entwicklerhandbuch.