Warum erhalten kontoübergreifende Benutzer Zugriffsverweigerungsfehler, wenn sie versuchen, auf S3-Objekte zuzugreifen, die durch einen benutzerdefinierten AWS KMS-Schlüssel verschlüsselt sind?

Lesedauer: 5 Minute
0

Mein Amazon Simple Storage Service (Amazon S3)-Bucket ist mit einem benutzerdefinierten AWS Key Management Service (AWS KMS)-Schlüssel verschlüsselt. Wenn Benutzer von einem anderen AWS-Konto aus versuchen, auf die Objekte in meinem Bucket zuzugreifen, erhalten sie die Fehlermeldung Zugriff verweigert. Wie kann ich das beheben?

Kurzbeschreibung

Um einem Benutzer in Konto B Zugriff auf einen mit AWS KMS verschlüsselten Bucket in Konto A zu gewähren, müssen Sie über diese Berechtigungen verfügen:

  • Die Bereichsrichtlinie in Konto A muss Zugang zu Konto B gewähren.
  • Die AWS KMS-Schlüsselrichtlinie in Konto A muss dem Benutzer in Konto B Zugriff gewähren.
  • Die AWS Identity and Access Management (IAM)-Richtlinie in Konto B muss dem Benutzer Zugriff auf den Bucket und den AWS KMS-Schlüssel in Konto A gewähren.

Um den Fehler "Zugriff verweigert" zu beheben, überprüfen Sie, ob diese Berechtigungen korrekt eingerichtet sind.

**Warnung:**Von AWS verwaltete AWS KMS-Schlüsselrichtlinien können nicht geändert werden, da sie schreibgeschützt sind. Sie können jedoch jederzeit sowohl die von AWS verwalteten KMS-Schlüsselrichtlinien als auch die vom Kunden verwalteten KMS-Schlüsselrichtlinien einsehen. . Da die von AWS verwalteten KMS-Schlüsselrichtlinien nicht aktualisiert werden können, können für diese wichtigen Richtlinien auch keine kontoübergreifenden Berechtigungen gewährt werden. Außerdem kann auf Objekte, die mit einem von AWS verwalteten KMS-Schlüssel verschlüsselt sind, nicht von anderen AWS-Konten zugegriffen werden. Bei vom Kunden verwalteten KMS-Schlüsselrichtlinien können Sie die Schlüsselrichtlinie ](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) nur über das AWS-Konto [ ändern, mit dem die Richtlinie erstellt wurde.

Wenn Sie Ihren eigenen AWS-KMS-Schlüssel (vom Kunden verwalteter KMS-Schlüssel) angeben, müssen Sie einen vollqualifizierten AWS-KMS-Schlüssel-ARN für die Bucket-Verschlüsselungseinstellung verwenden. Wenn Sie einen AWS KMS-Schlüsselalias verwenden, löst das AWS KMS den Schlüssel nur innerhalb des Kontos auf, das den Bucket besitzt (Konto A).

Benutze das:

"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"

Benutze nicht:

arn:aws:kms:us-west-2:111122223333:alias/<alias-name>

Auflösung

Die Bereichsrichtlinie in Konto A muss dem Benutzer in Konto B Zugriff gewähren

Überprüfen Sie von Konto A aus die Bucket-Richtlinie und vergewissern Sie sich, dass es eine Erklärung gibt, die den Zugriff von der Konto-ID von Konto B aus ermöglicht.

Diese Bucket-Richtlinie ermöglicht beispielsweise ** s3:getObject den ** Zugriff auf die Konto-ID 111122223333** **:

{
  "Id": "ExamplePolicy1",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt1",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
      "Principal": {
        "AWS": [
          "111122223333"
        ]
      }
    }
  ]
}

Die AWS KMS-Schlüsselrichtlinie in Konto A muss dem Benutzer in Konto B Zugriff gewähren

Die AWS KMS-Schlüsselrichtlinie muss dem Benutzer in Konto B Berechtigungen für die Aktion ** ** kms:Decrypt gewähren. Um beispielsweise nur einem IAM-Benutzer oder einer IAM-Rolle Schlüsselzugriff zu gewähren, sieht die zentrale Richtlinienerklärung wie folgt aus:

{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::111122223333:role/role_name"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}

Überprüfen Sie von Konto A aus die wichtigsten Richtlinien mithilfe der Richtlinienansicht der AWS Management Console. Suchen Sie in der Schlüsselrichtlinie nach ** „Sid“: „Erlaube die Verwendung des Schlüssels“**. Bestätigen Sie dann, dass der Benutzer in Konto B in dieser Erklärung als Principal aufgeführt ist.

Falls du die Aussage ** „Sid“ nicht siehst: „Verwendung des Schlüssels zulassen“**, wechseln Sie, um die Schlüsselrichtlinie in der Standardansicht der Konsole anzuzeigen. Fügen Sie dann die Konto-ID von Konto B als externes Konto mit Zugriff auf den Schlüssel hinzu.

Die IAM-Benutzerrichtlinie in Konto B muss dem Benutzer Zugriff sowohl auf den Bucket als auch auf den AWS KMS-Schlüssel in Konto A gewähren

Führen Sie von Konto B aus die folgenden Schritte aus:

1.    Öffnen Sie die IAM-Konsole.

  1. Öffnen Sie den IAM-Benutzer oder die dem Benutzer zugeordnete IAM-Rolle in Konto B.

  2. Sehen Sie sich die Liste der Berechtigungsrichtlinien an, die für IAM-Benutzer oder IAM-Rollen gelten.

  3. Stellen Sie sicher, dass Richtlinien angewendet werden, die Zugriff sowohl auf den Bucket als auch auf den AWS KMS-Schlüssel gewähren.

**Hinweis:**Wenn der IAM-Benutzer oder die IAM-Rolle in Konto B bereits über Administratorzugriff verfügt, müssen Sie keinen Zugriff auf den Schlüssel gewähren.

Die folgende Beispielrichtlinie gewährt dem IAM-Benutzer in Konto B Zugriff auf Objekte und den AWS-KMS-Schlüssel (zum Entschlüsseln von Objekten in einem Bucket):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt1",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
    },
    {
      "Sid": "ExampleStmt2",
      "Action": [
        "kms:Decrypt"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:kms:us-west-2:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }
  ]
}

Hinweis:

  • Die Bereichsrichtlinie in Konto A muss Zugang zu Konto B gewähren.
  • Der AWS KMS-Schlüssel in Konto A muss sich in derselben Region befinden wie der Bucket in Konto A.
  • Die AWS KMS-Schlüsselrichtlinie in Konto A muss dem Benutzer in Konto B Zugriff gewähren.
  • Die IAM-Richtlinie in Konto B muss dem Benutzer Zugriff sowohl auf den Bucket als auch auf den AWS KMS-Schlüssel in Konto A gewähren.

Weitere Informationen zum Hinzufügen oder Korrigieren der Berechtigungen des IAM-Benutzers finden Sie unter Ändern von Berechtigungen für einen IAM-Benutzer. .


Ähnliche Informationen

AWS-Richtliniengenerator

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr