AWS PrivateLink für Amazon S3 - Amazon Simple Storage Service

AWS PrivateLink für Amazon S3

Mit AWS PrivateLink für Amazon S3 können Sie VPC-Schnittstellen-Endpunkte (Schnittstellen-Endpunkte) in Ihrer Virtual Private Cloud (VPC) bereitstellen. Diese Endpunkte sind direkt von Anwendungen aus zugänglich, die über VPN und Direct Connect On-Premises oder in einer anderen AWS-Region über VPC-Peering verfügbar sind.

Schnittstellenendpunkte werden durch eine oder mehrere Elastic Network-Schnittstellen (ENIs) repräsentiert, denen private IP-Adressen aus Subnetzen in Ihrer VPC zugewiesen werden. Anforderungen an Amazon S3 über Schnittstellenendpunkte bleiben im Amazon-Netzwerk. Sie können auch von On-Premises-Anwendungen in Ihrer VPC über AWS Direct Connect oder AWS Virtual Private Network (Site-to-Site VPN) auf Schnittstellen-Endpunkte zugreifen. Weitere Informationen darüber, wie Sie Ihre VPC mit Ihrem On-Premises-Netzwerk verbinden, finden Sie im Direct Connect Benutzerhandbuch und im AWS Site-to-Site VPN Benutzerhandbuch.

Allgemeine Informationen zu Schnittstellen-Endpunkten finden Sie unter VPC-Schnittstellen-Endpunkte (AWS PrivateLink) im AWS PrivateLink-Handbuch.

Arten von VPC-Endpunkten für Amazon S3

Sie können zwei Arten von VPC-Endpunkten für den Zugriff auf Amazon S3 verwenden: Gateway-Endpunkte und Schnittstellenendpunkte (unter Verwendung von AWS PrivateLink). Ein Gateway-Endpunkt ist ein Gateway, das Sie in Ihrer Routentabelle angeben, um von Ihrer VPC über das AWS-Netzwerk auf Amazon S3 zuzugreifen. Schnittstellenendpunkte erweitern die Funktionalität von Gateway-Endpunkten, indem sie private IP-Adressen verwenden, um Anforderungen von Ihrer VPC, On-Premises oder von einer VPC in einer anderen AWS-Region mithilfe von VPC-Peering oder AWS Transit Gateway an Amazon S3 weiterzuleiten. Weitere Informationen finden Sie unter Was ist VPC Peering? und Vergleich zwischen Transit Gateway und VPC-Peering.

Schnittstellenendpunkte sind mit Gateway-Endpunkten kompatibel. Wenn Sie einen vorhandenen Gateway-Endpunkt in der VPC haben, können Sie beide Arten von Endpunkten in derselben VPC verwenden.

Gateway-Endpunkte für Amazon S3

Schnittstellenendpunkte für Amazon S3

In beiden Fällen verbleibt Ihr Netzwerkverkehr im AWS-Netzwerk.

Verwenden Sie öffentliche IP-Adressen von Amazon S3

Verwenden Sie private IP-Adressen aus Ihrer VPC für den Zugriff auf Amazon S3

Verwenden Sie die gleichen Amazon-S3-DNS-Namen

Erfordert endpunktspezifische Amazon-S3-DNS-Namen

Erlauben keinen On-Premises-Zugriff

Erlaubt On-Premises-Zugriff

Erlauben keinen Zugriff von einer anderen AWS-Region aus

Erlauben Zugriff von einer VPC in einer anderen AWS-Region mit VPC-Peering oder AWS Transit Gateway

Nicht berechnet

Berechnet

Weitere Informationen zu Gateway-Endpunkten finden Sie unter Gateway-VPC-Endpunkte im AWS PrivateLink-Handbuch.

VPC-Beschränkungen gelten für AWS PrivateLink für Amazon S3. Weitere Informationen finden Sie unter Überlegungen zu Schnittstellenendpunkten und AWS PrivateLink-Kontingente im Handbuch zu AWS PrivateLink. Darüber hinaus gelten die folgenden Einschränkungen.

AWS PrivateLink für Amazon S3 unterstützt Folgendes nicht:

Erstellung eines VPC-Endpunkts

Informationen zum Erstellen eines VPC-Schnittstellenendpunkts finden Sie unter Erstellen eines VPC-Endpunkts im AWS PrivateLink-Handbuch.

Zugriff auf Amazon-S3-Schnittstellen-Endpunkte

Wenn Sie einen Schnittstellenendpunkt erstellen, generiert Amazon S3 zwei Arten von endpunktspezifischen S3-DNS-Namen: regional und zonengebunden.

  • Ein regionaler DNS-Name enthält eine eindeutige VPC-Endpunkt-ID, eine Servicekennung, die AWS-Region und vpce.amazonaws.com in seinem Namen. Beispielsweise könnte der generierte DNS-Name für VPC-Endpunkt-ID vpce-1a2b3c4d mit vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com vergleichbar sein.

  • Ein zonengebundener DNS-Name enthält die Availability Zone, z. B. vpce-1a2b3c4d-5e6f-us-east-1a.s3.us-east-1.vpce.amazonaws.com. Sie können diese Option verwenden, wenn Ihre Architektur Availability Zones isoliert. Sie könnten sie beispielsweise zur Fehlereingrenzung oder zur Senkung der regionalen Datenübertragungskosten verwenden.

Endpunktspezifische S3-DNS-Namen können aus der öffentlichen S3-DNS-Domain aufgelöst werden.

Privates DNS

Optionen für private DNS für VPC-Schnittstellenendpunkte vereinfachen das Routing von S3-Datenverkehr über VPC-Endpunkte und helfen Ihnen dabei, den kostengünstigsten Netzwerkpfad für Ihre Anwendung zu nutzen. Sie können Optionen für private DNS verwenden, um regionalen S3-Datenverkehr weiterzuleiten, ohne Ihre S3-Clients aktualisieren zu müssen, damit sie die endpunktspezifischen DNS-Namen Ihrer Schnittstellenendpunkte verwenden, und ohne die DNS-Infrastruktur verwalten zu müssen. Wenn private DNS-Namen aktiviert sind, werden regionale S3-DNS-Abfragen an die privaten IP-Adressen von AWS PrivateLink für die folgenden Endpunkte aufgelöst:

  • Regionale Bucket-Endpunkte (z. B. s3.us-east-1.amazonaws.com)

  • Kontrollendpunkte (z. B. s3-control.us-east-1.amazonaws.com)

  • Zugriffspunkt-Endpunkte (z. B. s3-accesspoint.us-east-1.amazonaws.com)

AWS PrivateLink für Amazon S3 unterstützt die Verwendung von Amazon-S3-Dual-Stack-Endpunkten nicht. Wenn Sie einen S3-Dual-Stack-DNS-Namen als privaten DNS-Namen verwenden, wird Ihr IPv6-Verkehr entweder gelöscht oder, falls Ihre Virtual Private Cloud (VPC) über ein Internet-Gateway verfügt, wird Ihr IPv6-Verkehr über das Internet-Gateway in Ihrer VPC geleitet.

Wenn Sie einen Gateway-Endpunkt in Ihrer VPC haben, können Sie In-VPC-Anforderungen automatisch über Ihren vorhandenen S3-Gateway-Endpunkt und On-Premises-Anforderungen über Ihren Schnittstellenendpunkt weiterleiten. Mit diesem Ansatz können Sie Ihre Netzwerkkosten optimieren, indem Sie Gateway-Endpunkte für Ihren In-VPC-Datenverkehr verwenden, die nicht in Rechnung gestellt werden. Ihre On-Premises-Anwendungen können AWS PrivateLink mithilfe des eingehenden Resolver-Endpunkts verwenden. Amazon stellt einen DNS-Server den Route 53 Resolver für Ihre VPC zur Verfügung. Ein eingehender Resolver-Endpunkt leitet DNS-Abfragen vom On-Premises Netzwerk an Route 53 Resolver weiter.

Wichtig

Um bei Verwendung von Private DNS nur für eingehende Endpunkte aktivieren den kostengünstigsten Netzwerkpfad zu nutzen, muss in Ihrer VPC ein Gateway-Endpunkt vorhanden sein. Ein Gateway-Endpunkt hilft dabei, sicherzustellen, dass der In-VPC-Datenverkehr immer über das private AWS-Netzwerk weitergeleitet wird, wenn die Option Private DNS nur für eingehende Endpunkte aktivieren ausgewählt ist. Sie müssen diesen Gateway-Endpunkt beibehalten, solange die Option Private DNS nur für eingehende Endpunkte aktivieren aktiviert ist. Wenn Sie Ihren Gateway-Endpunkt löschen möchten, müssen Sie zuerst Private DNS nur für eingehende Endpunkte aktivieren deaktivieren.

Wenn Sie einen vorhandenen Schnittstellenendpunkt auf Private DNS nur für eingehende Endpunkte aktivieren aktualisieren möchten, vergewissern Sie sich zunächst, dass Ihre VPC über einen S3-Gateway-Endpunkt verfügt. Weitere Informationen zu Gateway-Endpunkten und zur Verwaltung von privaten DNS-Namen finden Sie unter Gateway-VPC-Endpunkte bzw. DNS-Namen verwalten im Handbuch zu AWS PrivateLink.

Die Option Private DNS nur für eingehende Endpunkte aktivieren ist nur für Services verfügbar, die Gateway-Endpunkte unterstützen.

Weitere Informationen zum Erstellen eines VPC-Endpunkts, der Private DNS nur für eingehende Endpunkte aktivieren verwendet, finden Sie unter Erstellen eines Schnittstellenendpunkts im Handbuch zu AWS PrivateLink.

Verwenden der VPC-Konsole

In der Konsole haben Sie zwei Optionen: DNS-Namen aktivieren und Private DNS nur für eingehende Endpunkte aktivieren. Die Option DNS-Namen aktivieren wird von AWS PrivateLink unterstützt. Mit der Option DNS-Namen aktivieren können Sie die private Konnektivität von Amazon mit Amazon S3 nutzen und gleichzeitig Anforderungen an die standardmäßigen DNS-Namen für öffentliche Endpunkte ausführen. Wenn diese Option aktiviert ist, können Kunden den für Ihre Anwendung kostengünstigsten Netzwerkpfad nutzen.

Wenn Sie private DNS-Namen für einen vorhandenen oder neuen VPC-Schnittstellenendpunkt für Amazon S3 aktivieren, ist die Option Private DNS nur für eingehende Endpunkte aktivieren standardmäßig ausgewählt. Wenn diese Option ausgewählt ist, verwenden Ihre Anwendungen nur Schnittstellenendpunkte für Ihren On-Premises-Datenverkehr. Dieser In-VPC-Datenverkehr verwendet automatisch die kostengünstigeren Gateway-Endpunkte. Alternativ können Sie Private DNS nur für eingehende Endpunkte aktivieren deaktivieren, um alle S3-Anforderungen über Ihren Schnittstellenendpunkt weiterzuleiten.

Verwenden der AWS CLI

Wenn Sie keinen Wert für PrivateDnsOnlyForInboundResolverEndpoint angeben, wird standardmäßig true verwendet. Bevor Ihre VPC Ihre Einstellungen anwendet, überprüft sie jedoch, ob in der VPC ein Gateway-Endpunkt vorhanden ist. Wenn ein Gateway-Endpunkt in der VPC vorhanden ist, ist der Aufruf erfolgreich. Wenn nicht, wird die folgende Fehlermeldung angezeigt:

Um PrivateDnsOnlyForInboundResolverEndpoint auf true setzen zu können, muss die VPC vpce_id über einen Gateway-Endpunkt für den Service verfügen.

Für einen neuen VPC-Schnittstellenendpunkt

Verwenden Sie die Attribute private-dns-enabled und dns-options, um privates DNS über die Befehlszeile zu aktivieren. Die Option PrivateDnsOnlyForInboundResolverEndpoint im Attribut dns-options muss auf true gesetzt sein. Ersetzen Sie user input placeholders durch Ihre Informationen.

aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name s3-service-name \ --vpc-id client-vpc-id \ --subnet-ids client-subnet-id \ --vpc-endpoint-type Interface \ --private-dns-enabled \ --ip-address-type ip-address-type \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=true \ --security-group-ids client-sg-id

Für einen vorhandenen VPC-Endpunkt

Wenn Sie privates DNS für einen vorhandenen VPC-Endpunkt verwenden möchten, verwenden Sie den folgenden Beispielbefehl und ersetzen Sie user input placeholders durch Ihre eigenen Informationen.

aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-id \ --private-dns-enabled \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=false

Wenn Sie einen vorhandenen VPC-Endpunkt aktualisieren möchten, um privates DNS nur für den eingehenden Resolver zu aktivieren, verwenden Sie das folgende Beispiel und ersetzen Sie die Beispielwerte durch Ihre eigenen.

aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-id \ --private-dns-enabled \ --dns-options PrivateDnsOnlyForInboundResolverEndpoint=true

Zugriff auf Buckets, Zugriffspunkte und Amazon-S3-Control-API-Operationen über S3-Schnittstellenendpunkte

Sie können die AWS CLI oder AWS-SDKs verwenden, um über S3-Schnittstellenendpunkte auf Buckets, S3-Zugriffspunkte und Amazon-S3-Control-API-Operationen zuzugreifen.

Die folgende Abbildung zeigt den Tab Details der VPC-Konsole, auf der Sie den DNS-Namen eines VPC-Endpunkts finden. In diesem Beispiel lautet die VPC-Endpunkt-ID (vpce-id) vpce-0e25b8cdd720f900e und der DNS-Name lautet *.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com.

Die Registerkarte Details in der VPC-Konsole.

Wenn Sie den DNS-Namen verwenden, um auf eine Ressource zuzugreifen, ersetzen Sie * durch den entsprechenden Wert. Die entsprechenden Werte, die anstelle von * verwendet werden können, lauten wie folgt:

  • bucket

  • accesspoint

  • control

Um beispielsweise auf einen Bucket zuzugreifen, verwenden Sie einen DNS-Namen wie diesen:

bucket.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com

Beispiele für die Verwendung von DNS-Namen für den Zugriff auf Buckets, Zugriffspunkte und Amazon-S3-Control API-Operationen finden Sie in den folgenden Abschnitten von AWS CLIBeispiele für und AWS-SDK-Beispiele.

Weitere Informationen zum Anzeigen Ihrer endpunktspezifischen DNS-Namen finden Sie unter Anzeigen der privaten DNS-Namenskonfiguration eines Endpunktservice im VPC-Benutzerhandbuch.

Verwenden Sie die Parameter --region und --endpoint-url, um über S3-Schnittstellenendpunkte in AWS CLI-Befehlen auf S3-Buckets, S3-Zugriffspunkte oder Amazon-S3-Control-API-Operationen zuzugreifen.

Beispiel: Verwenden einer Endpunkt-URL zum Auflisten von Objekten in Ihrem Bucket

Ersetzen Sie im folgenden Beispiel den Bucket-Namen my-bucket, die Region us-east-1 und den DNS-Namen der VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

aws s3 ls s3://my-bucket/ --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com

Beispiel: Verwenden einer Endpunkt-URL zum Auflisten von Objekten von einem Zugriffspunkt

  • Methode 1 – Verwenden des Amazon-Ressourcennamens (ARN) des Zugriffspunkts mit dem Zugriffspunkt-Endpunkt

    Ersetzen Sie den ARN us-east-1:123456789012:accesspoint/accesspointexamplename, die Region us-east-1 und die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

    aws s3api list-objects-v2 --bucket arn:aws:s3:us-east-1:123456789012:accesspoint/accesspointexamplename --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com

    Wenn Sie den Befehl nicht erfolgreich ausführen können, aktualisieren Sie die AWS CLI auf die aktuelle Version und versuchen Sie es erneut. Weitere Informationen zur Aktualisierung finden Sie unter Installation oder Aktualisierung der aktuellen Version der AWS CLI im Benutzerhandbuch zu AWS Command Line Interface.

  • Methode 2 – Verwenden des Alias des Zugriffspunkts mit dem regionalen Bucket-Endpunkt

    Ersetzen Sie im folgenden Beispiel den Zugriffspunkt-Alias accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias, die Region us-east-1 und die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

    aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
  • Methode 3 – Verwenden des Alias des Zugriffspunkts mit dem Zugriffspunkt-Endpunkt

    Um einen S3-Endpunkt zu erstellen, bei dem der Bucket als Teil des Hostnamens enthalten ist, legen Sie zunächst den Adressierungsstil auf virtual fest, damit aws s3api ihn verwenden kann. Weitere Informationen zu AWS configure finden Sie unter Einstellungen der Konfigurations- und Anmeldeinformationsdatei im Benutzerhandbuch zu AWS Command Line Interface.

    aws configure set default.s3.addressing_style virtual

    Ersetzen Sie im folgenden Beispiel dann den Zugriffspunkt-Alias accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias, die Region us-east-1 und die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen. Weitere Informationen zum Zugangspunkt-Alias finden Sie unter Zugriffspunkt-Aliasse.

    aws s3api list-objects-v2 --bucket accesspointexamplename-8tyekmigicmhun8n9kwpfur39dnw4use1a-s3alias --region us-east-1 --endpoint-url https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com
Beispiel: Verwenden einer Endpunkt-URL zum Auflisten von Aufträgen mit einer S3-Control-API-Operation

Ersetzen Sie im folgenden Beispiel die Region us-east-1, die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com und die Konto-ID 12345678 durch Ihre eigenen Informationen.

aws s3control --region us-east-1 --endpoint-url https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com list-jobs --account-id 12345678

Aktualisieren Sie bei Verwendung der AWS-SDKs die SDKs auf die aktuelle Version, um über S3-Schnittstellenendpunkte auf S3-Buckets, S3-Zugriffspunkte oder Amazon-S3-Control-API-Operationen zuzugreifen. Konfigurieren Sie Ihre Clients anschließend so, dass sie eine Endpunkt-URL verwenden, um über S3-Schnittstellenendpunkte auf einen Bucket, einen Zugriffspunkt oder Amazon-S3-Control-API-Operationen zuzugreifen.

SDK for Python (Boto3)
Beispiel: Verwenden einer Endpunkt-URL, um auf einen S3-Bucket zuzugreifen

Ersetzen Sie im folgenden Beispiel die Region us-east-1 und die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

s3_client = session.client( service_name='s3', region_name='us-east-1', endpoint_url='https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
Beispiel: Verwenden einer Endpunkt-URL, um auf einen S3-Zugriffspunkt zuzugreifen

Ersetzen Sie im folgenden Beispiel die Region us-east-1 und die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

ap_client = session.client( service_name='s3', region_name='us-east-1', endpoint_url='https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
Beispiel: Verwenden einer Endpunkt-URL, um auf die Amazon-S3-Control-API zuzugreifen

Ersetzen Sie im folgenden Beispiel die Region us-east-1 und die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

control_client = session.client( service_name='s3control', region_name='us-east-1', endpoint_url='https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com' )
SDK for Java 1.x
Beispiel: Verwenden einer Endpunkt-URL, um auf einen S3-Bucket zuzugreifen

Ersetzen Sie im folgenden Beispiel die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

// bucket client final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); List<Bucket> buckets = s3.listBuckets();
Beispiel: Verwenden einer Endpunkt-URL, um auf einen S3-Zugriffspunkt zuzugreifen

Ersetzen Sie im folgenden Beispiel die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com und den ARN us-east-1:123456789012:accesspoint/prod durch Ihre eigenen Informationen.

// accesspoint client final AmazonS3 s3accesspoint = AmazonS3ClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); ObjectListing objects = s3accesspoint.listObjects("arn:aws:s3:us-east-1:123456789012:accesspoint/prod");
Beispiel: Verwenden einer Endpunkt-URL, um auf eine Amazon-S3-Control-API-Operation zuzugreifen

Ersetzen Sie im folgenden Beispiel die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

// control client final AWSS3Control s3control = AWSS3ControlClient.builder().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build(); final ListJobsResult jobs = s3control.listJobs(new ListJobsRequest());
SDK for Java 2.x
Beispiel: Verwenden einer Endpunkt-URL, um auf einen S3-Bucket zuzugreifen

Ersetzen Sie im folgenden Beispiel die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com und die Region Region.US_EAST_1 durch Ihre eigenen Informationen.

// bucket client Region region = Region.US_EAST_1; s3Client = S3Client.builder().region(region) .endpointOverride(URI.create("https://bucket.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com")) .build()
Beispiel: Verwenden einer Endpunkt-URL, um auf einen S3-Zugriffspunkt zuzugreifen

Ersetzen Sie im folgenden Beispiel die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com und die Region Region.US_EAST_1 durch Ihre eigenen Informationen.

// accesspoint client Region region = Region.US_EAST_1; s3Client = S3Client.builder().region(region) .endpointOverride(URI.create("https://accesspoint.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com")) .build()
Beispiel: Verwenden einer Endpunkt-URL, um auf die Amazon-S3-Control-API zuzugreifen

Ersetzen Sie im folgenden Beispiel die VPC-Endpunkt-ID vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com und die Region Region.US_EAST_1 durch Ihre eigenen Informationen.

// control client Region region = Region.US_EAST_1; s3ControlClient = S3ControlClient.builder().region(region) .endpointOverride(URI.create("https://control.vpce-1a2b3c4d-5e6f.s3.us-east-1.vpce.amazonaws.com")) .build()

Aktualisieren einer lokalen DNS-Konfiguration

Wenn Sie endpunktspezifische DNS-Namen für den Zugriff auf die Schnittstellenendpunkte für Amazon S3 verwenden, brauchen Sie Ihren lokalen DNS-Resolver nicht zu aktualisieren. Sie können den endpunktspezifischen DNS-Namen mit der privaten IP-Adresse des Schnittstellenendpunkts aus der öffentlichen Amazon S3 DNS Domain auflösen.

Verwenden von Schnittstellenendpunkten für den Zugriff auf Amazon S3 ohne Gateway-Endpunkt oder Internet-Gateway in der VPC

Schnittstellenendpunkte in Ihrer VPC können sowohl In-VPC-Anwendungen als auch lokale Anwendungen über das Amazon-Netzwerk an Amazon S3 weiterleiten, wie im folgenden Diagramm dargestellt.

Datenflussdiagramm, das den Zugriff auf Amazon S3 über einen Schnittstellenendpunkt und AWS PrivateLink zeigt.

Das Diagramm veranschaulicht folgende Vorgänge:

  • Ihr On-Premises-Netzwerk verwendet Direct Connect oder Site-to-Site VPN, um eine Verbindung mit VPC A herzustellen.

  • Ihre lokalen Anwendungen und Anwendungen in VPC A verwenden endpunktspezifische DNS-Namen, um über den S3-Schnittstellenendpunkt auf Amazon S3 zuzugreifen.

  • On-Premises Anwendungen senden über Direct Connect (oder Site-to-Site VPN) Daten an den Schnittstellen-Endpunkt in der VPC. AWS PrivateLink verschiebt die Daten vom Schnittstellen-Endpunkt an Amazon S3 über das AWS-Netzwerk.

  • In-VPC-Anwendungen senden auch Datenverkehr and den Schnittstellen-Endpunkt. AWS PrivateLink verschiebt die Daten vom Schnittstellen-Endpunkt an Amazon S3 über das AWS-Netzwerk.

Gemeinsames Verwenden von Gateway-Endpunkten und Schnittstellenendpunkten in derselben VPC für den Zugriff auf Amazon S3

Sie können Schnittstellenendpunkte erstellen und den vorhandenen Gateway-Endpunkt in derselben VPC beibehalten, wie das folgende Diagramm zeigt. Mit diesem Ansatz erlauben Sie In-VPC-Anwendungen, weiterhin über den Gateway-Endpunkt auf Amazon S3 zuzugreifen, was nicht in Rechnung gestellt wird. Dann würden nur Ihre On-Premises-Anwendungen Schnittstellenendpunkte für den Zugriff auf Amazon S3 verwenden. Um auf diese Weise auf Amazon S3 zuzugreifen, müssen Sie Ihre On-Premises-Anwendungen aktualisieren, damit endpunktspezifische DNS-Namen für Amazon S3 verwendet werden.

Datenflussdiagramm, das den Zugriff auf Amazon S3 über Gateway-Endpunkte und Schnittstellenendpunkte zeigt.

Das Diagramm veranschaulicht folgende Vorgänge:

  • On-Premises-Anwendungen verwenden endpunktspezifische DNS-Namen, um über Direct Connect (oder Site-to-Site VPN) Daten an den Schnittstellen-Endpunkt innerhalb der VPC zu senden. AWS PrivateLink verschiebt die Daten vom Schnittstellen-Endpunkt an Amazon S3 über das AWS-Netzwerk.

  • Mithilfe von standardmäßigen regionalen Amazon-S3-Namen senden In-VPC-Anwendungen Daten an den Gateway-Endpunkt, der über das AWS-Netzwerk eine Verbindung mit Amazon S3 herstellt.

Weitere Informationen zu Gateway-Endpunkten finden Sie unter Gateway-VPC-Endpunkte im VPC-Benutzerhandbuch.

Erstellen einer VPC-Endpunktrichtlinie für Amazon S3

Sie können eine Endpunktrichtlinie an Ihren VPC-Endpunkt anhängen, der den Zugriff auf Amazon S3 steuert. Die Richtlinie gibt die folgenden Informationen an:

  • Der AWS Identity and Access Management (IAM) Prinzipal, der die Aktionen ausführen kann

  • Aktionen, die ausgeführt werden können

  • Ressourcen, für die Aktionen ausgeführt werden können

Sie können Amazon-S3-Bucket-Richtlinien auch verwenden, um den Zugriff auf bestimmte Buckets von einem bestimmten VPC-Endpunkt aus zu beschränken, indem Sie die Bedingung aws:sourceVpce in Ihrer Bucket-Richtlinie verwenden. Die folgenden Beispiele zeigen Richtlinien, die den Zugriff auf einen Bucket oder einen Endpunkt einschränken.

Sie können eine Endpunktrichtlinie erstellen, die den Zugriff auf spezifische Amazon-S3-Buckets beschränkt. Diese Art von Richtlinie ist hilfreich, wenn Sie in Ihrer VPC andere AWS-Services betreiben, die Buckets verwenden. Die folgende Bucket-Richtlinie schränkt den Zugriff auf ausschließlich ein amzn-s3-demo-bucket1. Um diese Endpunktrichtlinie zu verwenden, ersetzen Sie amzn-s3-demo-bucket1 im Beispiel durch den Namen Ihres Buckets.

JSON
{ "Version":"2012-10-17", "Id": "Policy1415115909151", "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket1/*"] } ] }

Sie können eine Endpunktrichtlinie erstellen, die den Zugriff auf ausschließlich die S3-Buckets in einem spezifischen AWS-Konto einschränkt. Verwenden Sie die folgende Anweisung in Ihrer Endpunktrichtlinie, um Clients in Ihrer VPC daran zu hindern, auf Buckets zuzugreifen, für die Sie keine Rechte haben. Die folgende Beispielanweisung erstellt eine Richtlinie, die den Zugriff auf Ressourcen einschränkt, die einer einzelnen AWS-Konto-ID, 111122223333, gehören.

{ "Statement": [ { "Sid": "Access-to-bucket-in-specific-account-only", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Deny", "Resource": "arn:aws:s3:::*", "Condition": { "StringNotEquals": { "aws:ResourceAccount": "111122223333" } } } ] }
Anmerkung

Zum Angeben der AWS-Konto-ID der Ressource, auf die zugegriffen wird, können Sie entweder den Schlüssel aws:ResourceAccount oder den Schlüssel s3:ResourceAccount in Ihrer IAM-Richtlinie verwenden. Dabei sollten Sie allerdings beachten, dass einige AWS-Services auf den Zugriff auf von AWS verwaltete Buckets angewiesen sind. Daher kann es auch den Zugriff auf diese Ressourcen beeinflussen, wenn Sie den Schlüssel aws:ResourceAccount oder s3:ResourceAccount in Ihrer IAM-Richtlinie verwenden.

Beispiel: Beschränken des Zugriffs auf einen bestimmten VPC-Endpunkt in der S3-Bucket-Richtlinie

Die folgende Amazon-S3-Bucket-Richtlinie ermöglicht den Zugriff auf einen spezifischen Bucket, amzn-s3-demo-bucket2, nur vom VPC-Endpunkt vpce-1a2b3c4d aus. Die Richtlinie lehnt sämtlichen Zugriff auf den Bucket ab, der nicht über den angegebenen Endpunkt erfolgt. Die Bedingung aws:sourceVpce gibt den Endpunkt an und erfordert keinen Amazon-Ressourcennamen (ARN) für die VPC-Endpunkt-Ressource, sondern nur die Endpunkt-ID. Um diese Bucket-Richtlinie zu verwenden, ersetzen Sie amzn-s3-demo-bucket2 und vpce-1a2b3c4d durch den Namen Ihres Buckets und Ihren Endpunkt.

Wichtig
JSON
{ "Version":"2012-10-17", "Id": "Policy1415115909152", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Principal": "*", "Action": "s3:*", "Effect": "Deny", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket2", "arn:aws:s3:::amzn-s3-demo-bucket2/*"], "Condition": {"StringNotEquals": {"aws:sourceVpce": "vpce-1a2b3c4d"}} } ] }

Weitere Beispiele für Richtlinien finden Sie in Endpunkte für Amazon S3 im VPC-Benutzerhandbuch.

Weitere Informationen über VPC-Konnektivität finden Sie unter Network-to-VPC connectivity options (Konnektivitätsoptionen vom Netzwerk zu VPC) im AWS-Whitepaper: Amazon Virtual Private Cloud Connectivity Options.