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.
AWS KMS wichtige Richtlinien und Berechtigungen für die Verschlüsselung von CloudFormation Hooks-Ergebnissen im Ruhezustand
In diesem Thema wird beschrieben, wie Sie die AWS KMS wichtigsten Richtlinien und Berechtigungen einrichten, die Sie benötigen, wenn Sie einen vom Kunden verwalteten Schlüssel für die Verschlüsselung von Hooks-Annotationsdaten angeben, der über die API verfügbar ist. GetHookResult
Anmerkung
CloudFormation Hooks benötigt keine zusätzliche Autorisierung, um die Standardeinstellung zum Verschlüsseln von Annotationsdaten in Ihrem Konto AWS-eigener Schlüssel zu verwenden.
Themen
Übersicht
Folgendes AWS KMS keys kann zum Verschlüsseln von Hook-Annotationsdaten verwendet werden:
-
AWS-eigener Schlüssel— CloudFormation Verwendet standardmäßig an, AWS-eigener Schlüssel um Daten zu verschlüsseln. Sie können ihre Verwendung nicht einsehen, verwalten AWS-eigene Schlüssel, verwenden oder überprüfen. Sie müssen jedoch keine explizite Konfiguration vornehmen, um den Schlüssel zu schützen, der zur Verschlüsselung Ihrer Daten verwendet wird. AWS-eigene Schlüssel werden kostenlos zur Verfügung gestellt (keine monatlichen Gebühren oder Nutzungsgebühren). Sofern Sie nicht verpflichtet sind, den Verschlüsselungsschlüssel, der Ihre Annotationsdaten schützt, zu überprüfen oder zu kontrollieren, AWS-eigener Schlüssel ist an eine gute Wahl.
-
Vom Kunden verwalteter Schlüssel — CloudFormation unterstützt die Verwendung eines symmetrischen, vom Kunden verwalteten Schlüssels, den Sie selbst erstellen, besitzen und verwalten, um eine zweite Verschlüsselungsebene zur bestehenden hinzuzufügen. AWS-eigener Schlüssel AWS KMS Gebühren fallen an. Weitere Informationen finden Sie unter Erstellen von Schlüsseln im AWS Key Management Service -Entwicklerhandbuch. Um Ihren Schlüssel zu verwalten, verwenden Sie das AWS Key Management Service (AWS KMS) in der AWS KMS Konsole
AWS CLI, das oder die AWS KMS API. Weitere Informationen finden Sie im AWS Key Management Service -Entwicklerhandbuch.
Sie können vom Kunden verwaltete Schlüssel konfigurieren, wenn Sie Hooks erstellen und aktualisieren. Wenn Sie Ihren vom Kunden verwalteten Schlüssel bereitstellen, CloudFormation verwendet er diesen Schlüssel, um die Annotationsdaten zu verschlüsseln, bevor sie gespeichert werden. Wenn später während des GetHookResult API-Vorgangs auf die Annotationsdaten zugegriffen wird, werden sie CloudFormation automatisch entschlüsselt. Informationen zur Konfiguration Ihres Verschlüsselungsschlüssels für Hooks finden Sie unter. Syntaxreferenz für das Hook-Konfigurationsschema
Wichtig
Beachten Sie, dass die KmsKeyId Option zur Angabe eines vom Kunden verwalteten Schlüssels derzeit nur verfügbar ist, wenn Sie den AWS CLI zur Konfiguration Ihres Hooks verwenden.
Verwendung des Verschlüsselungskontextes zur Steuerung des Zugriffs auf den vom Kunden verwalteten Schlüssel
CloudFormation Hooks schließt bei jedem Speicher- und Abrufvorgang von Anmerkungen automatisch den Verschlüsselungskontext ein. Auf diese Weise können Sie in Ihrer Schlüsselrichtlinie Bedingungen für den Verschlüsselungskontext festlegen, um sicherzustellen, dass der Schlüssel nur für bestimmte Hooks verwendet werden kann:
-
kms:EncryptionContext:aws:cloudformation:hooks:service— Stellt sicher, dass der Schlüssel nur vom CloudFormation Hooks-Dienst verwendet wird. -
kms:EncryptionContext:aws:cloudformation:account-id— Verhindert die kontoübergreifende Verwendung von Schlüsseln, indem Ihre AWS-Konto ID abgeglichen wird. -
kms:EncryptionContext:aws:cloudformation:arn— Beschränken Sie die Verwendung mithilfe von ARN-Mustern auf bestimmte Hooks.
Diese Bedingungen bieten zusätzlichen Schutz vor verwirrten stellvertretenden Angriffen, indem sie die verschlüsselten Daten kryptografisch an den spezifischen Hook-Kontext binden.
Kundenverwaltete KMS-Schlüsselrichtlinie
Wenn Sie Ihren vom Kunden verwalteten Schlüssel erstellen, müssen Sie dessen Schlüsselrichtlinie definieren, damit der CloudFormation Hooks-Service Operationen ausführen AWS KMS kann. Wenn Sie die folgende wichtige Richtlinie verwenden möchten, ersetzen Sie sie durch Ihre eigenen Informationen. placeholder values
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnableIAMUserDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cloudformation.us-east-1.amazonaws.com" } } }, { "Sid": "EnableIAMUserGenerateDataKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cloudformation.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:cloudformation:hooks:service": "hooks.cloudformation.amazonaws.com", "kms:EncryptionContext:aws:cloudformation:account-id": "111122223333" }, "StringLike": { "kms:EncryptionContext:aws:cloudformation:arn": "arn:aws:cloudformation:*:111122223333:hook/*" } } }, { "Sid": "EnableIAMUserDecrypt", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "cloudformation.us-east-1.amazonaws.com" } } }, { "Sid": "AllowHooksServiceDescribeKey", "Effect": "Allow", "Principal": { "Service": "hooks.cloudformation.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "StringLike": { "aws:SourceArn": "arn:aws:cloudformation:*:111122223333:hook/*" } } }, { "Sid": "AllowHooksService", "Effect": "Allow", "Principal": { "Service": "hooks.cloudformation.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "kms:EncryptionContext:aws:cloudformation:hooks:service": "hooks.cloudformation.amazonaws.com", "kms:EncryptionContext:aws:cloudformation:account-id": "111122223333" }, "StringLike": { "aws:SourceArn": "arn:aws:cloudformation:*:111122223333:hook/*", "kms:EncryptionContext:aws:cloudformation:arn": "arn:aws:cloudformation:*:111122223333:hook/*" } } } ] }
Diese Richtlinie gewährt sowohl den IAM-Rollen (die ersten drei Anweisungen) als auch dem CloudFormation Hooks-Dienst (die letzten beiden Anweisungen) Berechtigungen. Der kms:ViaService Bedingungsschlüssel stellt sicher, dass der KMS-Schlüssel nur über verwendet werden kann CloudFormation, wodurch direkte KMS-API-Aufrufe verhindert werden. Die wichtigsten Operationen sind:
-
kms:DescribeKey— Validiert wichtige Eigenschaften und Metadaten. Dieser Vorgang erfolgt in separaten Anweisungen, da er nicht unter Bedingungen des Verschlüsselungskontextes verwendet werden kann. -
kms:GenerateDataKey— Generiert Datenverschlüsselungsschlüssel zum Verschlüsseln von Anmerkungen vor dem Speichern. Dieser Vorgang beinhaltet Bedingungen für den Verschlüsselungskontext für die bereichsbezogene Zugriffskontrolle. -
kms:Decrypt— Entschlüsselt zuvor verschlüsselte Annotationsdaten. Für IAM-Rollen beinhaltet dies die Bedingung.kms:ViaServiceFür den Dienstprinzipal beinhaltet dies Bedingungen für den Verschlüsselungskontext.
Die Schlüssel aws:SourceAccount und die aws:SourceArn Bedingungsschlüssel bieten den primären Schutz vor verworrenen stellvertretenden Angriffen. Die Bedingungen für den Verschlüsselungskontext bieten zusätzliche Überprüfungsebenen. Weitere Informationen finden Sie im AWS Key Management Service Entwicklerhandbuch unter Verwenden aws:SourceArn oder aws:SourceAccount Zuweisen von Schlüsseln.
Wichtig
Rollen zur Hook-Ausführung benötigen keine AWS KMS Berechtigungen. Der CloudFormation Hooks-Dienstprinzipal führt alle AWS KMS Operationen aus.
KMS-Berechtigungen für die SetTypeConfiguration API
CloudFormation Überprüft während des SetTypeConfigurationAPI-Aufrufs die Benutzerberechtigungen zur Verschlüsselung von Annotationsdaten mit dem angegebenen Schlüssel. AWS KMS Fügen Sie dem Benutzer oder der Rolle, die die Verschlüsselung mithilfe der API konfiguriert, die folgende IAM-Richtlinie hinzu. SetTypeConfiguration Ersetzen Sie es durch den ARN Ihres vom Kunden verwalteten Schlüssels.arn:aws:kms:us-east-1:123456789012:key/abc-123
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudformation:SetTypeConfiguration", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:us-east-1:123456789012:key/abc-123" }, { "Effect": "Allow", "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:us-east-1:123456789012:key/abc-123", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:cloudformation:hooks:service": "hooks.cloudformation.amazonaws.com", "kms:EncryptionContext:aws:cloudformation:account-id": "123456789012" }, "StringLike": { "kms:EncryptionContext:aws:cloudformation:arn": "arn:aws:cloudformation:*:123456789012:hook/*" } } } ] }
KMS-Berechtigungen für GetHookResult API
Um Hooks aufrufen GetHookResultzu können, die Ihren vom Kunden verwalteten Schlüssel verwenden, müssen Benutzer über die kms:Decrypt Berechtigung für diesen Schlüssel verfügen. Fügen Sie dem Benutzer oder der Rolle, die den Anruf tätigen GetHookResult soll, die folgende IAM-Richtlinie hinzu. Ersetzen Sie es durch den ARN Ihres vom Kunden verwalteten Schlüssels.arn:aws:kms:us-east-1:123456789012:key/abc-123
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudformation:GetHookResult", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-1:123456789012:key/abc-123" } ] }