Identitätsbasierte Richtlinien - AWS Secrets Manager

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.

Identitätsbasierte Richtlinien

Fügen Sie Berechtigungsrichtlinien an IAM-Identitäten, Benutzer, Benutzergruppen und Rollen an. Bei einer identitätsbasierten Richtlinie geben Sie an, auf welche Secrets die Identität zugreifen darf und welche Aktionen die Identität für die Secrets ausführen darf. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen.

Sie können Berechtigungen für eine Rolle erteilen, die eine Anwendung oder einen Benutzer in einem anderen Service darstellt. Beispielsweise benötigt eine Anwendung, die auf einer EC2 Amazon-Instance ausgeführt wird, möglicherweise Zugriff auf eine Datenbank. Sie können eine IAM-Rolle erstellen, die an das EC2 Instance-Profil angehängt ist, und dann mithilfe einer Berechtigungsrichtlinie der Rolle Zugriff auf den geheimen Schlüssel gewähren, der die Anmeldeinformationen für die Datenbank enthält. Weitere Informationen finden Sie unter Verwenden einer IAM-Rolle, um Berechtigungen für Anwendungen zu gewähren, die auf EC2 Amazon-Instances ausgeführt werden. Andere Services, denen Sie Rollen anhängen können, sind unter anderem Amazon Redshift, AWS Lambda und Amazon ECS.

Sie können Benutzern, die von einem anderen Identitätssystem als IAM authentifiziert wurden, Berechtigungen erteilen. Sie können z. B. IAM-Rollen Benutzern mobiler Apps zuordnen, die sich mit Amazon Cognito anmelden. Die Rolle gewährt der App temporäre Anmeldeinformationen mit den Berechtigungen in der Berechtigungsrichtlinie der Rolle. Anschließend können Sie eine Berechtigungsrichtlinie verwenden, um der Rolle Zugriff auf das Secret zu gewähren. Weitere Informationen finden Sie unter Identitätsanbieter und Verbund.

Sie können identitätsbasierte Richtlinien für Folgendes verwenden:

  • Gewähren Sie einer Identität Zugriff auf mehrere Secrets.

  • Steuern Sie, wer neue Secrets erstellen und auf Secrets zugreifen kann, die noch nicht erstellt wurden.

  • Gewähren Sie einer IAM-Gruppe Zugriff auf Secrets.

Beispiel: Berechtigung zum Abrufen von einzelnen Secret-Werten

Um die Berechtigung zum Abrufen von Secret-Werten zu erteilen, können Sie Secrets oder Identitäten Richtlinien zuordnen. Hilfe zum Festlegen des zu verwendenden Richtlinientyps finden Sie unter Identity-based policies and resource-based policies (Identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien). Informationen zum Erstellen von Richtlinien finden Sie unter Ressourcenbasierte Richtlinien und Identitätsbasierte Richtlinien.

Dieses Beispiel ist nützlich, wenn Sie Zugriff auf eine IAM-Gruppe gewähren möchten. Informationen zum Gewähren der Berechtigung zum Abrufen einer Gruppe von Secrets in einem Batch-API-Aufruf finden Sie unter Beispiel: Berechtigung zum Abrufen einer Gruppe geheimer Werte in einem Batch.

Beispiel Lesen Sie ein Geheimnis, das mit einem vom Kunden verwalteten Schlüssel verschlüsselt wurde

Wenn ein Geheimnis mit einem vom Kunden verwalteten Schlüssel verschlüsselt wird, können Sie Zugriff auf das Geheimnis gewähren, indem Sie die folgende Richtlinie an eine Identität anhängen. \

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "SecretARN" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "KMSKeyARN" } ] }

Beispiel: Erlaubnis, einzelne Geheimnisse zu lesen und zu beschreiben

Beispiel Lies und beschreibe ein Geheimnis

Sie können Zugriff auf ein Secret gewähren, indem Sie die folgende Richtlinie an eine Identität anfügen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "SecretARN" } ] }

Beispiel: Berechtigung zum Abrufen einer Gruppe geheimer Werte in einem Batch

Beispiel Lesen Sie eine Gruppe von Geheimnissen in einem Stapel

Sie können den Zugriff auf den Abruf einer Gruppe von Secrets in einem Batch-API-Aufruf gewähren, indem Sie die folgende Richtlinie an eine Identität anhängen. Die Richtlinie schränkt den Aufrufer so ein, dass er nur die mit, und angegebenen Geheimnisse abrufen kann SecretARN1 SecretARN2SecretARN3, auch wenn der Batch-Aufruf andere Geheimnisse enthält. Wenn der Aufrufer im Batch-API-Aufruf auch andere Secrets anfordert, gibt Secrets Manager diese nicht zurück. Weitere Informationen finden Sie unter. BatchGetSecretValue .

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:BatchGetSecretValue", "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "SecretARN1", "SecretARN2", "SecretARN3" ] } ] }

Beispiel: Platzhalter

Sie können Platzhalter verwenden, um einen Satz von Werten in ein Richtlinienelement aufzunehmen.

Beispiel Greife auf alle Geheimnisse in einem Pfad zu

Die folgende Richtlinie gewährt Zugriff auf das Abrufen aller Geheimnisse, deren Name mit "TestEnv/" beginnt.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:Region:AccountId:secret:TestEnv/*" } }
Beispiel Greifen Sie auf Metadaten aller Geheimnisse zu

Die folgenden Richtlinien gewährt DescribeSecret und Berechtigungen beginnend mitList: ListSecrets und ListSecretVersionIds.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:List*" ], "Resource": "*" } }
Beispiel Ordnen Sie den geheimen Namen zu

Die folgende Richtlinie gewährt allen Secrets-Manager-Berechtigungen für ein Secret nach Namen. Informationen zur Verwendung dieser Richtlinie finden Sie unter Identitätsbasierte Richtlinien.

Um einen Secret-Namen zuzuordnen, erstellen Sie den ARN für das Secret, indem Sie Region, Konto-ID, Secret-Namen und Platzhalter (?) zusammenstellen, um einzelne zufällige Zeichen zuzuordnen. Secrets Manager fügt sechs zufällige Zeichen zu geheimen Namen als Teil ihres ARN an, sodass Sie diesen Platzhalter verwenden können, um diese Zeichen zu vergleichen. Bei Verwendung der Syntax "another_secret_name-*" gleicht Secrets Manager nicht nur das vorgesehene Secret mit den 6 zufälligen Zeichen, sondern auch ""another_secret_name-<anything-here>a1b2c3"" ab.

Da Sie alle Teile des ARN eines Secret mit Ausnahme der 6 zufälligen Zeichen vorhersagen können, ermöglicht Ihnen das Platzhalterzeichen '??????' das sichere Erteilen von Berechtigungen für ein noch nicht bestehendes Secret. Beachten Sie jedoch Folgendes: Wenn Sie das Secret löschen und mit demselben Namen neu erstellen, erhält der Benutzer automatisch die Berechtigung für das neue Secret, auch wenn die 6 Zeichen geändert wurden.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:*", "Resource": [ "arn:aws:secretsmanager:Region:AccountId:secret:a_specific_secret_name-a1b2c3", "arn:aws:secretsmanager:Region:AccountId:secret:another_secret_name-??????" ] } ] }

Beispiel: Berechtigung zum Erstellen von Secrets

Um einem Benutzer Berechtigungen für die Erstellung eines Secrets zu gewähren, empfehlen wir Ihnen, eine Berechtigungsrichtlinie an eine IAM-Gruppe anzufügen, der der Benutzer angehört. Weitere Informationen zu IAM-Benutzergruppen.

Beispiel Erstelle Geheimnisse

Die folgende Richtlinie erteilt die Berechtigung zum Erstellen von Secrets und zum Anzeigen einer Liste von Secrets. Informationen zur Verwendung dieser Richtlinie finden Sie unter Identitätsbasierte Richtlinien.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:ListSecrets" ], "Resource": "*" } ] }

Beispiel: Verweigern Sie einen bestimmten AWS KMS Schlüssel zur Verschlüsselung von Geheimnissen

Wichtig

Um einem vom Kunden verwalteten Schlüssel zu verweigern, empfehlen wir Ihnen, den Zugriff mithilfe einer Schlüsselrichtlinie oder einer Schlüsselgewährung einzuschränken. Weitere Informationen finden Sie AWS KMS im AWS Key Management Service Entwicklerhandbuch unter Authentifizierung und Zugriffskontrolle für.

Beispiel Verweigern Sie den AWS verwalteten Schlüssel aws/secretsmanager

Die folgende Richtlinie verweigert die Verwendung von Von AWS verwalteter Schlüssel aws/secretsmanager zum Erstellen oder Aktualisieren von Geheimnissen. Gemäß dieser Richtlinie müssen Geheimnisse mit einem vom Kunden verwalteten Schlüssel verschlüsselt werden. Die Richtlinie enthält zwei Anweisungen:

  1. Die erste Aussage,Sid: "RequireCustomerManagedKeysOnSecrets", lehnt Anfragen zur Erstellung oder Aktualisierung von Geheimnissen unter Verwendung von ab. Von AWS verwalteter Schlüssel aws/secretsmanager

  2. Die zweite Anweisung,Sid: "RequireKmsKeyIdParameterOnCreate", lehnt Anfragen zum Erstellen von Geheimnissen ab, die keinen KMS-Schlüssel enthalten, da Secrets Manager standardmäßig den Von AWS verwalteter Schlüssel aws/secretsmanager verwenden würde.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireCustomerManagedKeysOnSecrets", "Effect": "Deny", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret" ], "Resource": "*", "Condition": { "StringLikeIfExists": { "secretsmanager:KmsKeyArn": "<key_ARN_of_the_AWS_managed_key>" } } }, { "Sid": "RequireKmsKeyIdParameterOnCreate", "Effect": "Deny", "Action": "secretsmanager:CreateSecret", "Resource": "*", "Condition": { "Null": { "secretsmanager:KmsKeyArn": "true" } } } ] }