Wie kann ich über einen S3-Zugriffspunkt, der auf eine VPC beschränkt ist, auf einen Bucket in einem anderen Konto zugreifen?
Ich habe eine AWS Identity and Access Management (IAM)-Entität und einen Bucket in verschiedenen AWS-Konten. Ich möchte der IAM-Entität kontoübergreifenden Zugriff auf den Bucket mithilfe eines Amazon Simple Storage Service (Amazon S3)-Zugriffspunkts gewähren, der auf eine Amazon Virtual Private Cloud (Amazon VPC) beschränkt ist.
Behebung
Gehen Sie wie folgt vor, um einer IAM-Rolle oder einem IAM-Benutzer in einem AWS-Konto (Konto A) Zugriff auf einen Amazon-S3-Bucket in einem anderen AWS-Konto (Konto B) über einen S3-Zugriffspunkt zu gewähren, welcher auf eine Amazon VPC beschränkt ist:
- Erstellen Sie einen Amazon-S3-Zugriffspunkt und hängen Sie ihn an den Bucket in Konto B an.
- Erstellen Sie einen VPC-Gateway-Endpunkt von Amazon S3 in Konto A.
- Fügen Sie die Zugriffspunkt-, Bucket- und IAM-Richtlinien hinzu.
Erstellen Sie einen Amazon-S3-Zugriffspunkt und hängen Sie ihn an den Bucket in Konto B
- Öffnen Sie die Amazon-S3-Konsole.
- Wählen Sie Zugriffspunkte im Navigationsbereich aus.
- Wählen SieZugriffspunkt erstellen aus.
- Geben Sie unter Zugriffspunktname einen Namen für den Zugriffspunkt ein. Weitere Informationen finden Sie unter Regeln für die Benennung von Amazon-S3-Zugriffspunkten.
- Geben Sie unter Bucket-Name den Namen des Buckets aus Konto B ein, dem Sie den Zugriffspunkt zuordnen möchten.
- Wählen Sie Virtual Private Cloud (VPC) als Network Origin aus.
- Geben Sie für die VPC-ID die VPC-ID des ersten AWS-Kontos (Konto A) ein.
- Wählen Sie unter Einstellungen für öffentlichen Zugriff für diesen Zugriffspunkt sperren die Einstellungen zum Blockieren des öffentlichen Zugriffs aus, die Sie auf den Zugriffspunkt anwenden möchten.
Hinweis: Amazon S3 unterstützt derzeit nicht das Ändern der Einstellungen zum Blockieren des öffentlichen Zugriffs eines Zugriffspunkts, nachdem der Zugriffspunkt erstellt wurde. - Lassen Sie die Zugriffspunktrichtlinie leer.
- Wählen SieZugriffspunkt erstellen aus.
Erstellen Sie einen VPC-Gateway-Endpunkt von Amazon S3 in Konto A
Erstellen Sie einen S3-Gateway-VPC-Endpunkt im ersten AWS-Konto (Konto A) in derselben Region wie der Bucket, auf den Sie kontoübergreifenden Zugriff gewähren.
- Öffnen Sie die Amazon-VPC-Konsole.
- Wählen Sie Endpunkte im Navigationsbereich aus.
- Wählen Sie Endpunkt erstellen aus.
- Wählen Sie für die Service-Kategorie die Option AWS-Services aus.
- Fügen Sie für Services den Filter Typ: Gateway hinzu und wählen Sie dieselbe Region aus, die zum Erstellen des Zugriffspunkts verwendet wurde.
- Wählen Sie für VPC dieselbe VPC aus, die zum Erstellen des Zugriffspunkts verwendet wurde.
- Wählen Sie für Routing-Tabellen die Routing-Tabellen, die vom Endpunkt verwendet werden sollen.
- Wählen Sie die Zugriffsrichtlinie vollen Zugriff aus. Oder wählen Sie Benutzerdefiniert und stellen Sie sicher, dass die Richtlinie die erforderlichen S3-Aktionen zulässt.
Hinweis: Gateway-Endpunkte erlauben keinen Zugriff aus anderen AWS-Regionen. Im Folgenden finden Sie ein Beispiel für eine VPC-Endpunkt-Richtlinie, die alle S3-Aktionen für alle Buckets zulässt:
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:*"
}]
}
Zugriffspunkt-, Bucket- und IAM-Richtlinien anhängen
Um den kontoübergreifenden Zugriff der IAM-Entität des ursprünglichen AWS-Kontos (Konto A) auf den Bucket des anderen AWS-Kontos (Konto B) über den Zugriffspunkt zu ermöglichen, müssen Sie Berechtigungen aus dem Zugriffspunkt, Bucket und den IAM-Richtlinien erteilen. Im Folgenden finden Sie Richtlinien, die jeweils die erforderlichen Berechtigungen gewähren.
Zugriffspunktrichtlinie:
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "DelegateControlToAccessPoint",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::AccountA-ID:user/user1",
"arn:aws:iam::AccountA-ID:role/role01"
]
},
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-acess-point/object/*",
"arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point"
]
}]
}
Hinweis: Diese Richtlinie gewährt dem IAM-Benutzer oder der IAM-Rolle vom ursprünglichen AWS-Kontos (Konto A) die Berechtigung für den Zugriffspunkt im AWS-Zielkonto (Konto B).
Bucket-Richtlinie:
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AllowCrossAccountAccess",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::AccountA-ID:user/user1",
"arn:aws:iam::AccountA-ID:role/role01"
]
},
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"StringEquals": {
"s3:DataAccessPointArn": "arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point"
}
}
}]
}
Hinweis: Diese Richtlinie gewährt dem ursprünglichen AWS-Konto (Konto A) die IAM-Benutzerberechtigung für den Bucket (Konto B) mithilfe des Zugriffspunkts.
IAM-Richtlinie:
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AllowCrossAccountAccessToBucketAndAP",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point",
"arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point/object/*",
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
]
}]
}
Hinweis: Diese IAM-Richtlinie, die der IAM-Rolle oder dem Benutzer des ursprünglichen AWS-Kontos (Konto A) zugeordnet ist, gewährt Berechtigungen für den Bucket und den Zugriffspunkt des AWS-Zielkontos (Konto B).
Beispiele für AWS-CLI-Befehle zum Ausführen von S3-Vorgängen für den Bucket mithilfe des Zugriffspunkts:
Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehlermeldungen erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS CLI verwenden.
Liste:
aws s3 ls arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point
Hochladen:
aws s3 cp file.txt s3://arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point
Herunterladen:
aws s3 cp s3://arn:aws:s3:us-east-2:AccountB-ID:accesspoint/my-access-point file.txt
Hinweis: Die Anforderung muss von einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance in der VPC und in derselben Region wie der Bucket stammen.

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 6 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 3 Monaten