本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立授權
S3 存取授與執行個體中的個別存取權授與允許特定身分 — AWS Identity and Access Management (IAM) 主體,或公司目錄中的使用者或群組 — 在 S3 Access Grants 執行個體註冊的位置內取得存取權。位置會將值區或字首對應至IAM角色。S3 存取授權假設此IAM角色將臨時登入資料分配給受權者。
在 S3 存取授與執行個體中註冊至少一個位置後,您可以建立存取授與。
受權者可以是IAM使用者或角色,也可以是目錄使用者或群組。目錄使用者是您與 S3 Access Grants 執行個體相關聯的公司目錄或外部身分識別來源的使用者。如需詳細資訊,請參閱S3 Access Grants 和公司目錄身分。若要從 IAM Identity Center 為特定目錄使用者或群組建立授權,請尋找IAM身分識別中心用來識別該使用者的授權,例如,a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
。GUID IAM如需如何使用 IAM Identity Center 檢視使用者資訊的相關資訊,請參閱在 AWS IAM Identity Center 用戶指南。
您可以授與值區、前置詞或物件的存取權。Amazon S3 中的字首是物件索引鍵名稱開頭的一串字元,用於組織儲存貯體中的物件。這可以是任何允許的字元字串,例如值區中以前置字元開頭的物件金鑰名engineering/
稱。
子字首
授與已註冊位置的存取權時,您可以使用Subprefix
欄位來縮小位置範圍子集的存取範圍。如果您為授權選擇的註冊位置是預設 S3 路徑 (s3://
),則必須縮小授權範圍。您無法針對預設位置 (s3://
) 建立存取權授與,這會提供受權者存取每個值區的存取權 AWS 區域。 相反地,您必須將授權範圍縮小為下列其中一項:
-
一桶:
s3://
bucket
/* -
值區內的前綴:
s3://
bucket
/prefix
* -
前綴中的前綴:
s3://
bucket
/prefixA
/prefixB
* -
一個對象:
s3://
bucket
/object-key-name
如果您正在建立存取授與,其中註冊位置是值區,您可以在Subprefix
欄位中傳遞下列其中一項,以縮小授與範圍:
-
值區內的前綴:
prefix
* -
前綴中的前綴:
prefixA/
prefixB
* -
一個對象:
/
object-key-name
建立授權之後,Amazon S3 主控台中顯示的授權範圍,或在或中傳回GrantScope
的授權範圍 API AWS Command Line Interface (AWS CLI) 回應是將位置路徑與. Subprefix
請確定此串連路徑正確映射至您要授予存取權的 S3 儲存貯體、字首或物件。
注意
如果您需要建立只授與一個物件存取權的存取權授與,您必須指定該授與類型適用於物件。若要在API呼叫或CLI命令中執行此操作,請將
s3PrefixType
參數與值一起傳遞Object
。在 Amazon S3 主控台中,建立授權時,在選取位置後,在授予範圍下,選取授與範圍為物件核取方塊。如果儲存貯體不存在,則您無法建立該儲存貯體的授權。但是,您可以為尚未存在的前綴創建授權。
如需在 S3 存取授權執行個體中可建立的授與數目上限,請參閱S3 Access Grants 的限制。
您可以使用 Amazon S3 主控台建立存取授予, AWS CLI,Amazon S3 REST API 和 AWS SDKs.
建立存取授權
登入 AWS Management Console 並在打開 Amazon S3 控制台https://console.aws.amazon.com/s3/
。 -
在左側導覽窗格中,選擇 Access Grants。
-
在 S3 Access Grants 頁面上,選擇包含您要使用之 S3 Access Grants 執行個體的區域。
如果您是第一次使用 S3 Access Grants 執行個體,請確定您已完成步驟 2 - 註冊位置,並瀏覽至設定 Access Grants 執行個體精靈的步驟 3。如果您已有 S3 Access Grants 執行個體,請選擇檢視詳細資訊,然後從授權索引標籤選擇建立授權。
-
在授權範圍區段中,選取或輸入註冊位置。
如果您選取預設的
s3://
位置,請使用子字首方塊縮小存取授權的範圍。如需詳細資訊,請參閱子字首。如果您只授予一個物件的存取權,請選取授權範圍是物件。 -
在權限和存取底下,選取許可層級讀取或寫入,或兩者都選取。
然後選擇承授者類型。如果您已將公司目錄新增至IAM身分中心,並將此IAM身分識別中心執行個體與 S3 存取授權執行個體產生關聯,則可以從身分中心選擇目錄IAM身分。如果您選擇此選項,請從IAM身分識別中心取得使用者或群組的 ID,並在此區段中輸入。
如果「受權者」類型是IAM使用者或角色,請選擇「IAM主參與者」。在IAM主參與者類型下,選擇使用者或角色。然後,在IAM主要用戶下,從列表中選擇或輸入身份的 ID。
-
若要建立 S3 Access Grants 授權,請選擇下一步或建立授權。
-
-
如果下一步或建立授權為停用狀態:
無法建立授權
-
您可能需要先在 S3 Access Grants 執行個體中註冊位置。
-
您可能沒有建立存取授權的
s3:CreateAccessGrant
許可。請聯絡您的帳戶管理員。
-
若要安裝 AWS CLI,請參閱安裝 AWS CLI 中的 AWS Command Line Interface 使用者指南。
下列範例說明如何建立IAM主參與者的存取權授與要求,以及如何建立公司目錄使用者或群組的存取權授與要求。
若要使用下列範例命令,請將
取代為您自己的資訊。user input
placeholders
注意
如果您要建立的存取授權僅授予一個物件的存取權,請包含必要的參數 --s3-prefix-type Object
。
範例 建立IAM主參與者的存取權授與要求
aws s3control create-access-grant \ --account-id
111122223333
\ --access-grants-location-ida1b2c3d4-5678-90ab-cdef-EXAMPLE22222
\ --access-grants-location-configurationS3SubPrefix=prefixB*
\ --permissionREAD
\ --grantee GranteeType=IAM
,GranteeIdentifier=arn:aws:iam::123456789012
:user
/data-consumer-3
範例 建立存取授權回應
{"CreatedAt": "2023-05-31T18:41:34.663000+00:00", "AccessGrantId": "
a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
", "AccessGrantArn": "arn:aws:s3:us-east-2
:111122223333
:access-grants/default/grant/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
", "Grantee": { "GranteeType": "IAM", "GranteeIdentifier": "arn:aws:iam::111122223333
:user/data-consumer-3" }, "AccessGrantsLocationId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE22222
", "AccessGrantsLocationConfiguration": { "S3SubPrefix": "prefixB*" }, "GrantScope": "s3://DOC-BUCKET-EXAMPLE/prefix*", "Permission": "READ" }
建立目錄使用者或群組的存取授權請求
若要建立目錄使用者或群組的存取權授與要求,您必須先執行下列其中GUID一個命令來取得目錄使用者或群組的存取權限授與要求。
範例 取得目錄使用者或群組GUID的
您可以GUID透過IAM身分識IAM別中心主控台或使用 AWS CLI 或 AWS SDKs。下列命令會列出指定 IAM Identity Center 執行個體中的使用者,以及他們的名稱和識別碼。
aws identitystore list-users --identity-store-id
d-1a2b3c4d1234
此命令會列出指定IAM身分中心執行個體中的群組。
aws identitystore list-groups --identity-store-id
d-1a2b3c4d1234
範例 建立目錄使用者或群組的存取授權
此命令類似於為使IAM用者或角色建立授權,但受權者類型為 DIRECTORY_USER
or 以外DIRECTORY_GROUP
,受權者識別碼是目錄使用者或群組的。GUID
aws s3control create-access-grant \ --account-id
123456789012
\ --access-grants-location-iddefault
\ --access-grants-location-configurationS3SubPrefix="
" \ --permissionamzn-s3-demo-bucket
/rafael/*READWRITE
\ --grantee GranteeType=DIRECTORY_USER
,GranteeIdentifier=83d43802-00b1-7054-db02-f1d683aacba5
\
如需 Amazon S3 REST API 支援管理存取授與的相關資訊,請參閱 Amazon 簡單儲存服務API參考中的以下各節:
本節提供如何建立存取授與的範例 AWS SDKs.