Wie behebe ich Fehler vom Typ „403 – Zugriff verweigert“ in meinem Amazon-S3-Bucket, dessen Ressourcen alle aus demselben AWS-Konto stammen?

Lesedauer: 5 Minute
0

Ich versuche, auf meinen Amazon Simple Storage Service (Amazon S3)-Bucket zuzugreifen. Alle relevanten Ressourcen stammen aus demselben AWS-Konto. Ich erhalte jedoch die Fehlermeldung „403 – Zugriff verweigert“.

Kurzbeschreibung

Wenn Sie eine verbotene Anfrage an Ihren Amazon-S3-Bucket senden, gibt der Service den Fehler „403 – Zugriff verweigert“ aus. Informationen zur manuellen Behebung von Fehlern des Typs „403 – Zugriff verweigert“ finden Sie unter Wie behebe ich 403 Access Denied (Zugriff verweigert)-Fehler von Amazon S3?

Sie können auch das AWSSupport-TroubleshootS3AccessSameAccount-Runbook von AWS Systems Manager verwenden, um Probleme mit verweigertem Zugriff von Ihrem S3-Bucket zu diagnostizieren. Das Runbook ermittelt die Zugriffsebene, die dem Anforderer auf Ihrer S3-Ressource für alle relevanten Ressourcen desselben AWS-Kontos gewährt wurde. Dazu gehören zugriffs-, benutzer- und ressourcenbasierte Richtlinien, die mit der Amazon-S3-Ressource verknüpft sind. Ebenso gehören dazu der Benutzer oder die Rolle in AWS Identity and Access Management (IAM), der oder die in den Eingabeparametern angegeben ist.

**Hinweis:**AWSSupport-TroubleshootS3AccessSameAccount ermittelt nicht die Berechtigungen für kontoübergreifende Ressourcen. Außerdem muss sich der Anforderer im selben AWS-Konto wie der S3-Bucket oder das S3-Objekt befinden.

Behebung

Erforderliche Schritte

Gehen Sie wie folgt vor, um das AWSSupport-TroubleshootS3AccessSameAccount-Runbook von der Systems-Manager-Konsole aus auszuführen:

1.Öffnen Sie die Systems-Manager-Konsole.

2.Wählen Sie im Navigationsbereich Automatisierung aus.

3.Wählen Sie Automatisierung ausführen aus.

4.Wählen Sie unter „Dokument auswählen“ den Tab Eigentum von Amazon.

5.Wählen Sie in der Suchleiste für Automatisierungsdokumente den Filter Präfix Dokumentname aus der Dropdown-Liste aus. Wählen Sie dann in der Dropdown-Liste Gleich und geben Sie AWSSupport-TroubleshootS3AccessSameAccount ein. Drücken Sie die Eingabetaste.

6.Wählen Sie AWSSupport-TroubleshootS3AccessSameAccount aus.

7.Wählen Sie Weiter aus.

8.Wählen Sie Einfache Ausführung aus.

9.Geben Sie für S3ResourceArn den ARN des S3-Buckets oder -Objekts ein, für den/das Sie das Problem beheben möchten. So können Sie beispielsweise testen, ob ein Objekt hoch- oder heruntergeladen wurde.

arn:aws:s3:::bucket_name/key_name

10.Wählen Sie für S3Action die S3-Aktion aus, die das Runbook auswerten soll.

11.Geben Sie für RequesterARN den IAM-Benutzer- oder Rollen-ARN ein, für den Sie die Zugriffsebene für die spezifische S3-Ressource ermitteln möchten:

arn:aws:iam::123456789012:user/user_name or arn:aws:iam::123456789012:role/example-rol

12.Wählen Sie Ausführen.

Verwenden Sie den Status Ausführung, um den Fortschritt des Dokuments zu verfolgen. Nachdem der Status in Erfolg gewechselt ist, überprüfen Sie die im Abschnitt Ausgaben aufgeführten Ergebnisse. Die Ergebnisse enthalten Fehlercodes für jedes Objekt, das ausgewertet wird.
**Hinweis:**Um das Ergebnis eines einzelnen Schritts der Auswertung zu überprüfen, wählen Sie unter „Ausgeführte Schritte“ die entsprechende Schritt-ID aus.

Optionale Schritte

Die folgenden Schritte sind optional.

  • Für AutomationAssumeRole können Sie eine IAM-Rolle auswählen, die Systems Manager übernehmen soll, um Anfragen an Ihren Bucket zu senden. Wenn Sie dieses Feld leer lassen, verwendet Systems Manager die IAM-Identität, die Sie zum Einrichten des Dokuments nutzen. Weitere Informationen finden Sie im Abschnitt Erforderliche IAM-Berechtigungen für AutomationAssumeRole.
    Wichtig: Die Vertrauensrichtlinie der ausgewählten IAM-Rolle muss es Systems Manager Automation ermöglichen, die Rolle zu übernehmen. Außerdem muss die IAM-Rolle über die Berechtigung verfügen, das AWSSupport-TroubleshootS3AccessSameAccount-Runbook auszuführen.

  • Wenn der IAM-ARN eine Rolle ist und Sie einen bestimmten Sitzungsnamen angeben möchten, geben Sie für RequesterRoleSessionName den Sitzungsnamen ein.

  • Wenn das Objekt mehrere Versionen hat, geben Sie für S3ObjectVersionId die VersionId des Objekts ein. Mit diesem Parameter können Sie die Version des Objekts angeben, für das Sie den Zugriffskontext auswerten möchten.

  • Geben Sie den KMS-Schlüssel-ARN für KmsKeyArn ein, sofern für die Aktion relevant. So können Sie beispielsweise den Download eines Objekts testen, das mit einem KMS-Schlüssel verschlüsselt ist.

  • Für VpcEndpointId können Sie die Amazon Virtual Private Cloud (Amazon VPC)-Endpunkt-ID für die Zugriffsauswertung eingeben. Amazon-S3-Bucket-Richtlinien können den Zugriff auf Buckets von bestimmten Amazon-VPC-Endpunkten aus kontrollieren.

  • Für ContextKeyList können Sie die Liste der Bedingungskontextschlüssel und die entsprechenden Werte für eine Richtlinienauswertung eingeben. Zum Beispiel eine explizite Ablehnung für ein PutObject in Ihrer Bucket-Richtlinie:

    {"ContextKeyName":"s3:x-amz-server-side-encryption-aws-kms-key-id","ContextKeyValues':["arn:aws:kms:us-east-1:123456789012:key/abc12345-b1e9-45a3-aa90-39ec93dd9b82'],"ContextKeyType":"string'}
  • Wenn das Runbook die Eingabe mit einer bestimmten Service-Kontrollrichtlinie (SCP) von AWS Organizations vergleichen soll, geben Sie für SCPPolicy die SCP ein. Entfernen Sie alle Zeilenumbrüche, Tabulatoren oder Leerzeichen, wenn Sie einen Wert eingeben. Wenn Sie das Runbook vom Verwaltungskonto der Organisation aus ausführen, ist dieser Schritt nicht erforderlich.

  • Unter Tags können Sie Ihre Automatisierungen markieren, um sie einfacher kategorisieren zu können.

  • Für AWS-CLI-Befehl und teilbarer Ausführungslink bietet das Runbook einen Beispiel-Befehl für AWS Command Line Interface (AWS CLI) für Linux, Unix und macOS. Das Runbook stellt auch einen teilbaren Link bereit.

Erforderliche IAM-Berechtigungen für AutomationAssumeRole

Der AutomationAssumeRole-Parameter erfordert bestimmte Aktionen, um das Runbook verwenden zu können.

Die folgende Beispielrichtlinie enthält die erforderlichen Aktionen für die Automatisierungsrolle:

{  
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "iam:SimulateCustomPolicy",
        "iam:GetUser",
        "iam:GetPolicy",
        "iam:GetPolicyVersion",
        "iam:ListAttachedUserPolicies",
        "iam:ListUserPolicies",
        "iam:GetUserPolicy",
        "iam:ListGroupsForUser",
        "iam:ListGroupPolicies",
        "iam:GetGroupPolicy",
        "iam:ListAttachedGroupPolicies",
        "iam:GetRole",
        "iam:GetRolePolicy",
        "iam:ListAttachedRolePolicies",
        "iam:ListRolePolicies"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "s3:GetObjectAcl",
        "s3:GetObjectVersionAcl",
        "s3:GetObject",
        "s3:GetObjectVersion"
      ],
      "Resource": "arn:aws:s3:::bucket_name/destination-prefix",
      "Effect": "Allow"
    },
    {
      "Action": [
        "s3:GetBucketPolicy",
        "s3:GetBucketAcl",
        "s3:ListBucket",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation",
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::bucket_name",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ec2:DescribeVpcEndpoints"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "kms:GetKeyPolicy"
      ],
      "Resource": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
      "Effect": "Allow"
    },
    {
      "Action": [
        "organizations:ListPolicies",
        "organizations:DescribePolicy"
      ],
      "Resource": "arn:aws:organizations::aws:policy/service_control_policy/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ssm:GetAutomationExecution",
        "ssm:DescribeAutomationExecutions"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": "ssm:StartAutomationExecution",
      "Resource": "arn:aws:ssm:*:*:automation-definition/AWSSupport-TroubleshootS3AccessSameAccount:*",
      "Effect": "Allow",
      "Sid": "StartAutomationExecution"
    },
    {
      "Action": "access-analyzer:ValidatePolicy",
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten