Ich habe einen Benutzer, den ich Alfred User nennen werde, mit der angehängten IAM-Richtlinie wie folgt
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket-name/*",
"arn:aws:s3:::my-bucket-name/",
"arn:aws:s3:::my-bucket-name"
]
}
]
}
Im IAM-Simulator erhalte ich „Zugelassen“ für GetObject, wenn ich diese Richtlinie und diese ARN verwende:arn:aws:s3:::my-bucket-name/my-object.xml
Auf der CLI erhalte ich „AccessDenied“ für den folgenden Befehl:aws s3 cp s3://my-bucket-name/my-object.xml temp/my-object.xml
Beim Aufrufen der GetObject-Operation ist ein Clientfehler (AccessDenied) aufgetreten: Zugriff verweigert
Ich habe mir alles angesehen, was mir einfällt, aber ich kann diese Diskrepanz nicht erklären. Was übersehe ich?
Dinge, die ich versucht habe
„creds“ bedeutet hier „AWS IAM-Zugriffsschlüssel“
- IAM-Simulator – so funktioniert es
- Ein anderer Satz IAM-Anmeldeinformationen – das funktioniert
- Verwenden
aws s3 ls s3://my-bucket-name/
-- das funktioniert mit Alfreds IAM-Anmeldeinformationen und mit meinen Anmeldeinformationen - Richtlinien mit einem ähnlich konfigurierten Bucket in einem anderen AWS-Konto verglichen. Soweit ich das beurteilen kann, sind die Richtlinien identisch.
Antwort1
Es stellte sich heraus, dass es Berechtigungen für die KMS-Schlüssel waren, die diesen Bucket verschlüsseln. Die Schlüssel gehören dem Root-Konto, und daher konnte ich sie mit meinem normalen IAM-Zugriff nicht finden und auch die Richtlinie dazu nicht sehen.