Wie kann ich den Fehler 403 Access Denied (Zugriff verweigert) in meinem Amazon-S3-Bucket beheben, bei dem alle Ressourcen 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 den Fehler „403 Access Denied“ (Zugriff verweigert).

Kurzbeschreibung

Wenn Sie eine unzulässige Anforderung an Ihren Amazon-S3-Bucket ausführen, gibt der Service einen Fehler „403 Access Denied“ (Zugriff verweigert) zurück. Informationen zur manuellen Behebung des Fehlers 403 Access Denied (Zugriff verweigert) finden Sie unter Wie behebe ich den Fehler 403 Access Denied (Zugriff verweigert) von Amazon S3?

Sie können auch das Runbook AWSSupport-TroubleshootS3AccessSameAccount von AWS Systems Manager verwenden, um Probleme mit Zugriffsverweigerung aus Ihrem S3-Bucket zu diagnostizieren. Das Runbook wertet die Zugriffsebene aus, die dem Anforderer für Ihre S3-Ressource für alle relevanten Ressourcen aus demselben AWS-Konto gewährt wurde. Dazu gehören zugriffs-, benutzer- und ressourcenbasierte Richtlinien, die mit der S3-Ressource und dem in den Eingabeparametern angegebenen AWS Identity and Access Management (IAM)-Benutzer oder -Rolle verknüpft sind.

Hinweis: Das AWSSupport-TroubleshootS3AccessSameAccount wertet keine Berechtigungen für kontenübergreifende Ressourcen aus. Außerdem muss sich der Anforderer im selben AWS-Konto wie der S3-Bucket oder das S3-Objekt befinden.

Lösung

Erforderliche Schritte

Befolgen Sie diese Schritte, um das Runbook AWSSupport-TroubleshootS3AccessSameAccount von der Systems-Manager-Konsole aus auszuführen:

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

2.    Wählen Sie im Navigationsbereich Automation (Automatisierung).

3.    Wählen Sie Execute automation (Automatisierung ausführen).

4.    Wählen Sie unter Choose document (Dokument auswählen) die Registerkarte Owned by Amazon (Im Besitz von Amazon).

5.    Wählen Sie in der Suchleiste des Dokuments Automation (Automatisierung) aus der Dropdown-Liste den Filter Document name prefix (Dokument-Namenspräfix) aus. Wählen Sie dann in der Dropdownliste die Option Equals (Gleich) aus und geben Sie AWSSupportTroubleshootS3AccessSameAccount ein. Drücken Sie dann Enter (Eingabetaste).

6.    Wählen Sie AWSSupport-TroubleshootS3AccessSameAccount.

7.    Wählen Sie Weiter aus.

8.    Wählen Sie Simple execution (Einfache Ausführung).

9.    Geben Sie für S3ResourceArn den ARN des S3-Buckets oder -Objekts ein, das Sie beheben möchten. Um zum Beispiel auf einen Upload oder Download eines Objekts zu testen:

arn:aws:s3:::bucket_name/key_name

10.    Wählen Sie für S3Action die S3-Aktion aus, für die das Runbook den Zugriffskontext 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 suchen möchten. Beispiel:

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

12.    Wählen Sie Execute (Ausführen).

Verwenden Sie den Ausführungsstatus, um den Fortschritt des Dokuments zu verfolgen. Nachdem sich der Status in Success (Erfolgreich) geändert hat, überprüfen Sie die Ergebnisse, die im Abschnitt Outputs (Ausgaben) aufgeführt sind. Die Ergebnisse enthalten Fehlercodes für jedes ausgewertete Objekt.

Hinweis: Um das Ergebnis eines einzelnen Schritts in der Auswertung zu überprüfen, wählen Sie unter Executed steps (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 annehmen soll, um Anforderungen an Ihren Bucket zu senden. Wenn Sie dieses Feld leer lassen, verwendet Systems Manager die IAM-Identität, die Sie zum Einrichten des Dokuments verwenden. Weitere Informationen finden Sie im Abschnitt Erforderliche IAM-Berechtigungen für AutomationAssumeRole.

Wichtig: Die Vertrauensrichtlinie der IAM-Rolle, die Sie auswählen, muss es Systems Manager Automation erlauben, die Rolle zu übernehmen. Außerdem muss die IAM-Rolle über die Berechtigung zum Ausführen des Runbooks AWSSupport-TroubleshootS3AccessSameAccount verfügen.

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.

Wenn es für die Aktion relevant ist, geben Sie den KMS-Schlüssel-ARN für KmsKeyArn ein. Zum Beispiel, um den Download eines Objekts zu 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 eingeben, die mit der Zugriffsauswertung verbunden ist. Amazon-S3-Bucket-Richtlinien können den Zugriff auf Buckets von bestimmten Amazon-VPC-Endpunkten aus steuern.

Für ContextKeyList können Sie die Liste der Bedingungskontextschlüssel und die entsprechenden Werte eingeben, die sich auf die Richtlinienauswertung beziehen. Zum Beispiel eine explizite Zugriffsverweigerung 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 Sie möchten, dass das Runbook die Eingabe mit einer bestimmten Service-Kontrollrichtlinien (SCP) für AWS Organizations vergleicht, geben Sie für SCPPolicy den SCP ein. Entfernen Sie alle neuen Linien, Registerkarten oder Leerzeichen, wenn Sie einen Wert eingeben.

Hinweis: Wenn Sie das Runbook über das Verwaltungskonto der Organisation ausführen, ist der vorherige Schritt nicht erforderlich.

Bei Tags können Sie Ihre Automatisierungen markieren, um Ihnen bei der Kategorisierung zu helfen.

Für den AWS-CLI-Befehl und den gemeinsam nutzbaren Ausführungslink bietet das Runbook ein Beispiel für den AWS Command Line Interface (AWS CLI)-Befehl für Linux, Unix und macOS X. Das Runbook bietet auch einen gemeinsam nutzbaren Link.

Erforderliche IAM-Berechtigungen für AutomationAssumeRole

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

Die folgende Beispielrichtlinie umfasst die erforderlichen Aktionen für die Automatisierungs-Rolle:

{
  "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 6 Monaten