AWS S3-Zugriff auf tatsächliches Objekt verweigert, obwohl Simulator Zugriff erlaubt angibt

AWS S3-Zugriff auf tatsächliches Objekt verweigert, obwohl Simulator Zugriff erlaubt angibt

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.

verwandte Informationen