本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
透過 S3 Access Grants 請求存取 Amazon S3 資料
在您使用 Amazon S3 Access Grants 建立授予 (Word) 主體、您的公司目錄身分或授權應用程式存取 S3 資料的存取授予之後,您的受讓者可以請求憑證來存取此資料。 AWS Identity and Access Management IAM S3
當應用程式或使用 AWS 服務 API GetDataAccess
操作請求 S3 Access Grants 代表承授者存取您的 S3 資料時,S3 Access Grants 會先驗證您已授予資料的此身分存取權。然後,S3 Access Grants 使用 AssumeRole 用來取得臨時憑證字符的 API 操作,並將其轉譯給請求者。這個臨時憑證權杖是 AWS Security Token Service (AWS STS) 權杖。
GetDataAccess
請求必須包含 target
參數,用來指定臨時憑證套用的 S3 資料範圍。此 target
範圍可與授權範圍相同,也可以是該範圍的子集,但 target
範圍必須在授予請求者的授權範圍內。請求也必須指定 permission
參數,以指出臨時憑證的許可層級,也就是 READ
、WRITE
或 READWRITE
。
請求者可以在其憑證請求中指定臨時權杖的許可層級。請求者可以使用 privilege
參數,在授權範圍內縮小或加大臨時憑證的存取範圍。privilege
參數的預設值為 Default
,這表示所傳回憑證的目標範圍是原始授權範圍。privilege
的另一個可能的值為 Minimal
。如果 target
範圍比原始授權範圍小,則臨時憑證的範圍也會縮小,以符合 target
範圍,前提是 target
範圍在授權範圍內。
下表詳細說明 privilege
參數對兩個授權的影響。一個授權的範圍是 S3://
,包括 amzn-s3-demo-bucket1
/bob/*
儲存貯體中的整個 amzn-s3-demo-bucket1
bob/
字首。另一個授權的範圍是 S3://
,只包括 amzn-s3-demo-bucket1
/bob/reports/*
儲存貯體中的 amzn-s3-demo-bucket1
bob/reports/
字首。
授權範圍 | 請求範圍 | 權限 | 傳回範圍 | Effect |
---|---|---|---|---|
S3:// |
|
Default
|
|
請求者可以存取 |
S3:// |
|
Minimal
|
|
若字首名稱 |
S3:// |
|
Minimal
|
|
請求者可以存取 |
S3:// |
|
Default
|
|
請求者可以存取 |
S3:// |
|
Minimal
|
|
請求者只能存取 |
durationSeconds
參數會設定臨時憑證的持續時間 (以秒為單位)。預設值為 3600
秒 (1 小時),但請求者 (承授者) 可以指定從 900
秒 (15 分鐘) 到最長 43200
秒 (12 小時) 的範圍。若承授者請求的值高於此上限,則請求會失敗。
注意
在您的臨時權杖請求中,如果位置是物件,請將您請求中的 targetType
參數值設定為 Object
。只有在位置是物件且權限層級為 Minimal
時,才需要此參數。若位置是儲存貯體或字首,則不需要指定此參數。
如需詳細資訊,請參閱 Amazon Simple Storage Service GetDataAccess 參考中的 Word。 API
您可以使用 AWS Command Line Interface (AWS CLI)API、Amazon S3 REST 和 AWS SDKs 來請求臨時憑證。
若要安裝 AWS CLI,請參閱 AWS Command Line Interface 使用者指南中的安裝 AWS CLI。
若要使用下列範例命令,請以您自己的資訊取代
。user input
placeholders
範例 請求臨時憑證
要求:
aws s3control get-data-access \ --account-id
111122223333
\ --targets3://
\amzn-s3-demo-bucket
/prefixA*--permission
READ
\ --privilege Default \ --regionus-east-2
回應:
{ "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*
如需從 Amazon S3 Access Grants 請求臨時憑證的 Amazon S3 REST API支援相關資訊,請參閱 Amazon Simple Storage Service GetDataAccess 參考中的 Word。 API
本節提供受讓者如何使用 AWS SDKs 向 S3 Access Grants 請求臨時憑證的範例。