Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie kann ich meiner Amazon EC2 Instance Zugriff auf einen Amazon S3 Bucket in einem anderen AWS-Konto gewähren?
Ich möchte eine Amazon Elastic Compute Cloud (Amazon EC2) Instance verwenden, um in einem anderen Konto auf meinen Amazon Simple Storage Service (Amazon S3) Bucket zuzugreifen.
Behebung
Hinweis: Die Schritte, um einer Amazon EC2 Instance Zugriff auf einen Amazon S3 Bucket zu gewähren, ähneln den Schritten, um Zugriff auf AWS-Ressourcen in einem anderen Konto zu gewähren.
Gehen Sie wie folgt vor, um einer Instance in Konto A Zugriff auf einen S3 Bucket in Konto B zu gewähren.
Von Konto B aus eine IAM-Rolle erstellen
Gehen Sie wie folgt vor, um eine Identity and Access Management (IAM)-Rolle von Konto B aus zu erstellen:
- Melden Sie sich mit Konto B bei der AWS-Managementkonsole an.
- Öffnen Sie die IAM-Konsole.
- Wählen Sie im Navigationsbereich Rollen und dann Rolle erstellen aus.
- Wählen Sie für Typ der vertrauenswürdigen Entität die Option AWS-Konto aus.
- Wählen Sie Anderes AWS-Konto aus und geben Sie dann die Konto-ID von Konto A ein.
- Wählen Sie Weiter aus.
- Hängen Sie eine IAM-Richtlinie an die Rolle an, die den Zugriff auf Amazon S3 delegiert, und wählen Sie dann Weiter. Die folgende IAM-Richtlinie gewährt beispielsweise s3:GetObject-Zugriff auf Objekte, die im Bucket gespeichert sind:
Hinweis: Sie können die IAM-Richtlinie auf der Grundlage der Amazon-S3-Berechtigungen auf Bucket-Ebene und Objektebene ändern, die für Ihren Anwendungsfall erforderlich sind.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET" ] } ] } - Geben Sie unter Rollenname einen Namen für die Rolle ein.
- (Optional) Fügen Sie der Rolle Tags hinzu.
- Wählen Sie Rolle erstellen.
In Konto B den ARN der IAM-Rolle suchen
Gehen Sie wie folgt vor, um den ARN der IAM-Rolle zu ermitteln:
- Wählen Sie im Navigationsbereich der IAM-Konsole die Option Rollen.
- Wählen Sie die IAM-Rolle aus, die Sie erstellt haben.
- Notieren Sie sich den Wert, der für Rollen-ARN aufgeführt ist.
Von Konto A aus eine weitere Rolle erstellen und an die Instance anhängen
Gehen Sie wie folgt vor, um ein weiteres Instance-Profil von Konto A aus zu erstellen und es an die Instance anzuhängen:
- Melden Sie sich mit Konto A bei der AWS-Managementkonsole an.
- Öffnen Sie die IAM-Konsole.
- Wählen Sie im Navigationsbereich Rollen und dann Rolle erstellen aus.
- Wählen Sie für Typ der vertrauenswürdigen Entität die Option AWS Service aus.
- Wählen Sie für Service oder Anwendungsfall EC2 und dann Ihren Anwendungsfall aus.
- Wählen Sie Weiter aus.
- Wählen Sie auf der Seite Berechtigungen hinzufügen die Option Weiter aus.
- Geben Sie unter Rollenname einen Namen für die Rolle ein.
- (Optional) Fügen Sie der Rolle Tags hinzu.
- Wählen Sie Rolle erstellen.
- Wählen Sie aus der Liste der Rollen die Rolle aus, die Sie gerade erstellt haben.
- Wählen Sie für Berechtigungen hinzufügen die Option Inline-Richtlinie erstellen aus.
- Wählen Sie für den Richtlinieneditor JSON aus, und geben Sie dann die folgende Richtlinie ein:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111111111111:role/ROLENAME" }] }
Hinweis: Ersetzen Sie dann arn:aws:iam::111111111111:role/ROLENAME durch den ARN der IAM-Rolle, die Sie in Konto B erstellt haben. Wählen Sie Weiter aus. Geben Sie unter Name einen Namen für die Richtlinie ein, und wählen Sie dann Richtlinie erstellen aus. Hängen Sie die IAM-Rolle an die Instance an, die Sie für den Zugriff auf den Amazon S3 Bucket verwenden.
Von der Amazon EC2 Instance ein Profil für die Rolle in der CLI-Konfigurationsdatei erstellen
Hinweis: Wenn Sie SSH und Session Manager, eine Funktion von AWS Systems Manager, verwenden, um eine Verbindung zu Ihren Instances herzustellen, müssen Sie diese Schritte sowohl für den ec2-Benutzer als auch für den ssm-Benutzer ausführen.
Gehen Sie wie folgt vor, um ein Profil für die Rolle in der CLI-Konfigurationsdatei von der Instance aus zu erstellen:
-
Stellen Sie eine Verbindung mit der Instance her. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu Ihrer Linux Instance oder Herstellen einer Verbindung zu Ihrer Windows Instance.
-
Um festzustellen, ob das Verzeichnis bereits einen Ordner mit dem Namen ~/.aws hat, führen Sie den folgenden ls-Befehl aus, um das Instance-Verzeichnis aufzulisten:
ls -l ~/.awsWenn Sie den Ordner ~/.aws finden, fahren Sie mit dem nächsten Schritt fort. Wenn Sie keinen ~/.aws-Ordner finden, führen Sie den folgenden mkdir-Befehl aus, um den Ordner zu erstellen:
mkdir ~/.aws/ -
Verwenden Sie im Ordner ~/.aws einen Texteditor, um eine Datei zu erstellen. Nennen Sie die Datei config.
-
Geben Sie in der Datei den folgenden Text ein:
[profile enterprofilename] role_arn = arn:aws:iam::111111111111:role/ROLENAME credential_source = Ec2InstanceMetadataHinweis: Ersetzen Sie enterprofilename durch Ihren Wert. Ersetzen Sie dann arn:aws:iam::111111111111:role/ROLENAME durch den ARN der Rolle, die Sie in Konto B erstellt haben.
-
Speichern Sie die Datei.
Sicherstellen, dass das Instance-Profil die Rolle übernehmen kann
Um zu überprüfen, ob die Rolle Ihrer Instance die Rolle in Konto B übernehmen kann, stellen Sie eine Verbindung zur Instance her und führen Sie dann den folgenden Befehl aus:
$aws sts get-caller-identity --profile profilename
Hinweis: Ersetzen Sie profilname durch den Namen der Rolle, die Sie der Instance angehängt haben.
Der Befehl gibt eine Antwort zurück, die der folgenden ähnelt:
"Account": "11111111111", "UserId": "AROAEXAMPLEID:sessionName", "Arn": "arn:aws:sts::111111111111:assumed-role/ROLENAME/sessionName"
Vergewissern Sie sich, dass der Wert für „Arn“ mit dem ARN der Rolle übereinstimmt, die Sie in Konto B erstellt haben.
Den Zugriff auf den Amazon S3 Bucket überprüfen
Um zu überprüfen, ob Ihre Instance auf den S3 Bucket zugreifen kann, stellen Sie eine Verbindung mit der Instance her und führen Sie dann den folgenden Listenbefehl aus:
aws s3 ls s3://DOC-EXAMPLE-BUCKET --profile profilename
Hinweis: Ersetzen Sie profilname durch den Namen der Rolle, die Sie der Instance angehängt haben.
Wenn Ihre Instance erfolgreich auf den Bucket zugreifen kann, erhalten Sie eine Antwort ähnlich der folgenden:
PRE Hello/ 2018-08-15 16:16:51 89 index.html
Ähnliche Informationen
IAM-Tutorial: Delegieren Sie den Zugriff über AWS-Konten mithilfe von IAM-Rollen
- Themen
- Storage
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 8 Monaten