Anfordern des Zugriffs auf Amazon-S3-Daten über S3 Access Grants
Nachdem Sie eine Zugriffsberechtigung mit S3 Access Grants erstellt haben, können die Berechtigten Anmeldeinformationen anfordern, um auf die S3-Daten zuzugreifen, auf die ihnen Zugriff gewährt wurde. Zuwendungsempfänger können AWS Identity and Access Management (IAM) Prinzipale, Ihre Unternehmensverzeichnisidentitäten oder autorisierte Anwendungen sein.
Eine Anwendung oder AWS-Service kann die S3-Access-Grants-API-Operation „GetDataAccess“ verwenden, um S3 Access Grants im Namen eines Begünstigten 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 Geltungsbereich kann mit dem Geltungsbereich der Finanzhilfe übereinstimmen oder eine Teilmenge dieses Geltungsbereichs sein, aber der target Geltungsbereich muss innerhalb des Geltungsbereichs der Finanzhilfe liegen, die dem Finanzhilfeempfä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://. Dieser Umfang umfasst das gesamte Präfix amzn-s3-demo-bucket1/bob/*bob/ im Bucket . Die andere Gewährung hat den Umfang amzn-s3-demo-bucket1S3://. Dieser Umfang umfasst nur das Präfix amzn-s3-demo-bucket1/bob/reports/*bob/reports/ im Bucket . amzn-s3-demo-bucket1
| Umfang der Gewährung | Angeforderter Umfang | Recht | Zurückgegebener Umfang | Auswirkung |
|---|---|---|---|---|
S3:// |
|
Default
|
|
Der Anforderer hat Zugriff auf alle Objekte im Bucket |
S3:// |
|
Minimal
|
|
Ohne das Platzhalterzeichen (*) nach dem Präfixnamen |
S3:// |
|
Minimal
|
|
Der Anforderer hat Zugriff auf alle Objekte im Bucket |
S3:// |
|
Default
|
|
Der Anforderer hat Zugriff auf alle Objekte im Bucket |
S3:// |
|
Minimal
|
|
Der Anforderer hat nur Zugriff auf das Objekt mit dem Schlüsselnamen |
Verzeichnis-Identitäten
GetDataAccess berücksichtigt beim Abgleich geeigneter Zuschüsse alle an einem Antrag beteiligten Identitäten. Bei Corporate-Directory-Identitäten gibt GetDataAccess auch die Grants der IAM-Identität zurück, die für die identitätsbewusste Sitzung verwendet wird. Weitere Informationen zu identitätsbasierten Sitzungen finden Sie unter Gewährung von Berechtigungen zur Verwendung identitätsbasierter Konsolensitzungen im AWS Identity and Access Management Benutzerhandbuch. GetDataAccess generiert Anmeldeinformationen, die den Geltungsbereich auf die restriktivste Gewährung beschränken, wie in der folgenden Tabelle dargestellt:
| Geltungsbereich für IAM-Identität gewähren | Geltungsbereich für Verzeichnisidentität gewähren | Angeforderter Umfang | Zurückgegebener Umfang | Recht | Auswirkung |
|---|---|---|---|---|---|
S3:// |
|
S3://
|
S3://
|
Default |
Der Antragsteller hat Zugriff auf alle Objekte, deren Schlüsselnamen mit dem Präfix bob/ beginnen, als Teil des Grant für die IAM-Rolle, ist aber auf die Präfixe bob/images/ als Teil des Grant für die Verzeichnisidentität beschränkt. Sowohl die IAM-Rolle als auch die Verzeichnisidentität bieten Zugriff auf den angeforderten Bereich |
S3:// |
|
S3://
|
S3://
|
Minimal |
Da das Privileg auf gesetzt ist |
S3:// |
|
S3://
|
S3://
|
Default |
Der Antragsteller hat Zugriff auf alle Objekte, deren Schlüsselnamen mit dem Präfix bob/ als Teil der Gewährung für die Verzeichnisidentität beginnen, ist jedoch auf die Präfixe bob/images/ als Teil der Gewährung für die IAM-Rolle beschränkt. Sowohl die IAM-Rolle als auch die Verzeichnisidentität bieten Zugriff auf den angeforderten Bereich |
S3:// |
|
S3://
|
S3://
|
Minimal |
Da das Privileg auf gesetzt ist |
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 über die AWS Command Line Interface (AWS CLI), Amazon-S3-REST-API und AWS SDKs anfordern. Informationen finden Sie in diesen Beispielen.
Weitere Informationen finden Sie unter GetDataAccess in der Amazon Simple Storage Service API Reference.
Informationen zum Installieren von AWS CLI finden Sie unter Installieren von AWS CLI im AWS Command Line Interface-Benutzerhandbuch.
Wenn Sie den folgenden Beispielbefehl verwenden möchten, ersetzen Sie durch Ihre eigenen Informationen.user input
placeholders
Beispiel Anfordern temporärer Anmeldeinformationen
Anforderung:
aws s3control get-data-access \ --account-id111122223333\ --targets3://\amzn-s3-demo-bucket/prefixA*--permissionREAD\ --privilege Default \ --regionus-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://*", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::amzn-s3-demo-bucket/prefixA*111122223333:role/role-name" } }
Informationen zur Amazon-S3-REST-API-Unterstützung für die Anforderung temporärer Anmeldeinformationen von S3 Access Grants finden Sie unter GetDataAccess in der Amazon-Simple-Storage-Service-API-Referenz.
Dieser Abschnitt enthält ein Beispiel dafür, wie Gewährungsempfänger über die AWS SDKs temporäre Anmeldeinformationen von S3 Access Grants anfordern können.