Anfordern des Zugriffs auf Amazon-S3-Daten über S3 Access Grants - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Anfordern des Zugriffs auf Amazon-S3-Daten über S3 Access Grants

Nachdem Sie mithilfe von S3 Access Grants eine Zugriffsberechtigung erstellt haben, können Empfänger Anmeldeinformationen für den Zugriff auf die S3-Daten anfordern, auf die ihnen Zugriff gewährt wurde. Bei den Empfängern kann es sich um AWS Identity and Access Management (IAM-) Principals, Ihre Unternehmensverzeichnisidentitäten oder autorisierte Anwendungen handeln.

Eine Anwendung oder AWS-Service kann den GetDataAccess API-Vorgang S3 Access Grants verwenden, um S3 Access Grants im Namen eines Empfängers um Zugriff auf Ihre S3-Daten zu bitten. GetDataAccessüberprüft zunächst, ob Sie dieser Identität Zugriff auf die Daten gewährt haben. Anschließend ruft S3 Access Grants mithilfe der AssumeRole-API-Operation ein temporäres Anmeldeinformationstoken ab und sendet es an den Anforderer. Dieses Token für temporäre Anmeldeinformation ist ein AWS Security Token Service (AWS STS)-Token.

Die GetDataAccess-Anforderung muss den Parameter target enthalten, um den Umfang der S3-Daten anzugeben, für den die temporären Anmeldeinformationen gelten. Dieser target Umfang kann dem Umfang des Zuschusses oder einem Teil dieses Umfangs entsprechen, der Umfang muss jedoch innerhalb des target Geltungsbereichs des Zuschusses liegen, der dem Zuschussempfänger gewährt wurde. In der Anforderung muss auch der Parameter permission angegeben werden, der die Berechtigungsstufe für die temporären Anmeldeinformationen angibt, READ, WRITE oder READWRITE.

Recht

Der Anforderer kann die Berechtigungsstufe des temporären Tokens in der Anforderung für Anmeldeinformationen angeben. Mit dem Parameter privilege kann der Anforderer den Umfang des Zugriffs für die temporären Anmeldeinformationen innerhalb der Grenzen des Gewährungsumfangs reduzieren oder erhöhen. Der Standardwert des Parameters privilege ist Default. Das bedeutet, dass der Zielumfang der zurückgegebenen Anmeldeinformationen der ursprüngliche Umfang der Gewährung ist. Der andere mögliche Wert für privilege ist Minimal. Wenn der target-Umfang im Vergleich zum ursprünglichen Umfang der Gewährung reduziert wird, wird der Umfang der temporären Anmeldeinformationen an den target-Umfang angepasst, solange der target-Umfang innerhalb des Gewährungsumfangs liegt.

Die folgende Tabelle zeigt die Auswirkungen des Parameters privilege auf zwei Gewährungen. Eine Gewährung hat den Umfang S3://amzn-s3-demo-bucket1/bob/*. Dieser Umfang umfasst das gesamte Präfix bob/ im Bucket amzn-s3-demo-bucket1. Die andere Gewährung hat den Umfang S3://amzn-s3-demo-bucket1/bob/reports/*. Dieser Umfang umfasst nur das Präfix bob/reports/ im Bucket amzn-s3-demo-bucket1.

Umfang der Gewährung Angeforderter Umfang Recht Zurückgegebener Umfang Auswirkung
S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/* Default amzn-s3-demo-bucket1/bob/*

Der Anforderer hat Zugriff auf alle Objekte im Bucket amzn-s3-demo-bucket1, deren Schlüsselnamen mit dem Präfix bob/ beginnen.

S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/ Minimal amzn-s3-demo-bucket1/bob/

Ohne das Platzhalterzeichen (*) nach dem Präfixnamen bob/ hat der Anforderer nur Zugriff auf das Objekt mit dem Namen bob/ im Bucket amzn-s3-demo-bucket1. Ein solches Objekt ist nicht üblich. Der Anforderer hat keinen Zugriff auf andere Objekte, auch nicht auf Objekte, deren Schlüsselnamen mit dem Präfix bob/ beginnen.

S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* Minimal amzn-s3-demo-bucket1/bob/images/*

Der Anforderer hat Zugriff auf alle Objekte im Bucket amzn-s3-demo-bucket1, deren Schlüsselnamen mit dem Präfix bob/images/* beginnen.

S3://amzn-s3-demo-bucket1/bob/reports/* amzn-s3-demo-bucket1/bob/reports/file.txt Default amzn-s3-demo-bucket1/bob/reports/*

Der Anforderer hat Zugriff auf alle Objekte im Bucket amzn-s3-demo-bucket1, deren Schlüsselnamen mit dem Präfix bob/reports beginnen. Dies entspricht dem Umfang der entsprechenden Gewährung.

S3://amzn-s3-demo-bucket1/bob/reports/* amzn-s3-demo-bucket1/bob/reports/file.txt Minimal amzn-s3-demo-bucket1/bob/reports/file.txt

Der Anforderer hat nur Zugriff auf das Objekt mit dem Schlüsselnamen bob/reports/file.txt im Bucket amzn-s3-demo-bucket1. Der Anforderer hat keinen Zugriff auf andere Objekte.

Identitäten von Verzeichnissen

GetDataAccessberücksichtigt bei der Suche nach geeigneten Zuschüssen alle Identitäten, die in einem Antrag enthalten sind. Gibt für Unternehmensverzeichnisidentitäten GetDataAccess auch die Grants der IAM-Identität zurück, die für die Sitzung mit identitätssensitiver Erkennung verwendet wird. Weitere Informationen zu identitätsbewussten Sitzungen finden Sie im Benutzerhandbuch unter Erteilen von Berechtigungen zur Verwendung identitätsbewusster Konsolensitzungen.AWS Identity and Access Management GetDataAccessgeneriert Anmeldeinformationen, wobei der Gültigkeitsbereich auf die restriktivste Erteilung beschränkt wird, wie in der folgenden Tabelle dargestellt:

Geltungsbereich für die IAM-Identität Gewähren Sie Geltungsbereich für die Verzeichnisidentität Angeforderter Umfang Zurückgegebener Umfang Recht Auswirkung
S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/* Default

Der Antragsteller hat im Rahmen des Grants für die IAM-Rolle Zugriff auf alle Objekte, deren Schlüsselnamen mit dem Präfix bob/ beginnen, ist jedoch auf die Präfixe bob/images/ als Teil des Grants für die Verzeichnisidentität beschränkt. Sowohl die IAM-Rolle als auch die Verzeichnisidentität bieten Zugriff auf den angeforderten Bereich, d. h., für die Verzeichnisidentität gilt bob/images/image1.jpeg jedoch ein restriktiverer Zugriff. Der zurückgegebene Bereich ist also auf die restriktivere Zuteilung für die Verzeichnisidentität beschränkt.

S3://amzn-s3-demo-bucket1/bob/* amzn-s3-demo-bucket1/bob/images/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg Minimal

Da das Privileg auf gesetzt istMinimal, wird nur der angeforderte Bereich zurückgegeben, obwohl die Identität Zugriff auf einen größeren Bereich hatbob/images/image1.jpeg.

S3://amzn-s3-demo-bucket1/bob/images/* amzn-s3-demo-bucket1/bob/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/* Default

Der Anforderer hat Zugriff auf alle Objekte mit Schlüsselnamen, die mit dem Präfix bob/ beginnen, als Teil des Grants für die Verzeichnisidentität, ist jedoch auf die Präfixe bob/images/ als Teil des Grants für die IAM-Rolle beschränkt. Sowohl die IAM-Rolle als auch die Verzeichnisidentität bieten Zugriff auf den angeforderten Bereich, was der Fall ist, aber für die IAM-Rolle gilt eine bob/images/image1.jpeg restriktivere Gewährung. Der zurückgegebene Bereich ist also auf den restriktiveren Zugriff für die IAM-Rolle beschränkt.

S3://amzn-s3-demo-bucket1/bob/images/* amzn-s3-demo-bucket1/bob/* S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg S3://amzn-s3-demo-bucket1/bob/images/image1.jpeg Minimal

Da das Privileg auf gesetzt istMinimal, wird nur der angeforderte Bereich zurückgegebenbob/images/image1.jpeg, obwohl die Identität Zugriff auf einen größeren Bereich hat.

Dauer

Der Parameter durationSeconds legt die Gültigkeitsdauer der temporären Anmeldeinformationen in Sekunden fest. Der Standardwert ist 3600 Sekunden (1 Stunde). Der Anforderer (Empfänger) kann jedoch einen Bereich von 900 Sekunden (15 Minuten) bis 43200 Sekunden (12 Stunden) angeben. Wenn der Empfänger einen höheren Wert als diesen Höchstwert anfordert, schlägt die Anforderung fehl.

Anmerkung

Wenn der Speicherort ein Objekt ist, legen Sie in Ihrer Anforderung eines temporären Tokens den Wert des Parameters targetType auf Object fest. Dieser Parameter ist nur erforderlich, wenn es sich der Speicherort ein Objekt ist und die Berechtigungsstufe Minimal ist. Wenn der Speicherort ein Bucket oder ein Präfix ist, müssen Sie diesen Parameter nicht angeben.

Beispiele

Sie können temporäre Anmeldeinformationen anfordern, indem Sie die AWS Command Line Interface (AWS CLI), die Amazon S3 S3-REST-API und die verwenden AWS SDKs. Informationen finden Sie in diesen Beispielen.

Weitere Informationen finden Sie GetDataAccessin der Amazon Simple Storage Service API-Referenz.

Informationen zur AWS CLI Installation von finden Sie unter Installation von AWS CLI im AWS Command Line Interface Benutzerhandbuch.

Wenn Sie den folgenden Beispielbefehl verwenden möchten, ersetzen Sie user input placeholders durch Ihre eigenen Informationen.

Beispiel Anfordern temporärer Anmeldeinformationen

Anforderung:

aws s3control get-data-access \ --account-id 111122223333 \ --target s3://amzn-s3-demo-bucket/prefixA* \ --permission READ \ --privilege Default \ --region us-east-2

Antwort:

{ "Credentials": { "AccessKeyId": "Example-key-id", "SecretAccessKey": "Example-access-key", "SessionToken": "Example-session-token", "Expiration": "2023-06-14T18:56:45+00:00"}, "MatchedGrantTarget": "s3://amzn-s3-demo-bucket/prefixA**", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::111122223333:role/role-name" } }

Informationen zur Amazon S3 S3-REST-API-Unterstützung für die Anforderung temporärer Anmeldeinformationen von S3 Access Grants finden Sie GetDataAccessin der Amazon Simple Storage Service API-Referenz.

Dieser Abschnitt enthält ein Beispiel dafür, wie Stipendiaten mithilfe von temporäre Anmeldeinformationen von S3 Access Grants anfordern. AWS SDKs

Java

Das folgende Codebeispiel gibt die temporären Anmeldeinformationen zurück, die der Gewährungsempfänger für den Zugriff auf Ihre S3-Daten verwendet. Wenn Sie dieses Codebeispiel verwenden möchten, ersetzen Sie user input placeholders durch eigene Daten.

Beispiel Abrufen temporärer Anmeldeinformationen

Anforderung:

public void getDataAccess() { GetDataAccessRequest getDataAccessRequest = GetDataAccessRequest.builder() .accountId("111122223333") .permission(Permission.READ) .privilege(Privilege.MINIMAL) .target("s3://amzn-s3-demo-bucket/prefixA*") .build(); GetDataAccessResponse getDataAccessResponse = s3Control.getDataAccess(getDataAccessRequest); LOGGER.info("GetDataAccessResponse: " + getDataAccessResponse); }

Antwort:

GetDataAccessResponse( Credentials=Credentials( AccessKeyId="Example-access-key-id", SecretAccessKey="Example-secret-access-key", SessionToken="Example-session-token", Expiration=2023-06-07T06:55:24Z ))