Ich möchte den Zugriff auf Geheimnisse in AWS Secrets Manager mithilfe ressourcenbasierter Richtlinien kontrollieren.
Kurzbeschreibung
Mit ressourcenbasierten Richtlinien können Sie den Benutzerzugriff auf ein Geheimnis festlegen und festlegen, welche Aktionen ein AWS Identity and Access Management (IAM)-Benutzer ausführen kann.
Hinweis: Ein Geheimnis wird mit Secrets Manager als Ressource definiert.
Sie können die ressourcenbasierten Richtlinien von Secrets Manager in den folgenden gängigen Szenarien verwenden:
Das folgende Beispiel für eine ressourcenbasierte Richtlinie verwendet die Elemente Effect, Action, Resource und Principal:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:*",
"Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
"Resource": "*"
}
]
}
Behebung
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Gehen Sie wie folgt vor, um eine ressourcenbasierte Richtlinie in Secrets Manager anzuwenden:
-
Erstellen Sie ein Geheimnis und notieren Sie sich dann den ARN des Geheimnisses.
-
Kopieren Sie diese Richtlinie, fügen Sie sie in Ihren bevorzugten Texteditor ein und speichern Sie sie dann als JSON-Datei wie my_explicit_deny_policy.json:
{ "Version": "2012-10-17","Statement": [
{
"Effect": "Deny",
"Action": "secretsmanager:GetSecretValue",
"Principal": {"AWS": "arn:aws:iam::123456789999:user/Mary"},
"Resource": "*"
}
]
}
-
Führen Sie den AWS-CLI-Befehl put-resource-policy aus, um eine Ressourcenrichtlinie für das Geheimnis anzuhängen, um den Abruf geheimer Werte explizit zu verweigern:
aws secretsmanager put-resource-policy --secret-id My_Resource_Secret --resource-policy file:// My_explicit_deny_Policy.json
Sie erhalten eine Ausgabe, die der folgenden ähnelt:
{"ARN": "arn:aws:secretsmanager:<your region>:123456789999:secret:My_Resource_Secret",
"Name": "My_Resource_Secret"
}
Hinweis: Die Entschlüsselungsberechtigung des AWS Key Management Service (AWS KMS) ist nur erforderlich, wenn Sie AWS-KMS-Schlüssel verwenden, um Ihr Geheimnis zu verschlüsseln. Wenn das Geheimnis mit einem standardmäßigen AWS-KMS-Schlüssel verschlüsselt ist, kann ein IAM-Prinzipal in einem Drittanbieterkonto das Geheimnis nicht abrufen.
Weitere Informationen finden Sie unter Zuordnen einer Berechtigungsrichtlinie zu einem AWS Secrets Manager Secret.