本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例 1:為其使用者授予儲存貯體許可的儲存貯體擁有者
重要
將權限授與IAM角色相比,將權限授與個別使用者更好。如需有關如何授與IAM角色權限的詳細資訊,請參閱。了解跨帳戶權限和使用IAM角色
在本逐步解說中, AWS 帳戶 擁有值區,且帳戶包含IAM使用者。依預設,使用者沒有權限。父帳戶必須授予使用者許可,使用者才能執行任何任務。儲存貯體擁有者及父帳戶是相同的。因此,若要授與使用者儲存貯體的權限, AWS 帳戶 可以使用值區政策、使用者原則或兩者。帳戶擁有者將使用儲存貯體政策授予部分許可,並使用使用者政策授予其他許可。
以下是演練步驟的摘要:
-
帳戶管理員建立儲存貯體政策,並將一組許可授予使用者。
-
帳戶管理員向使用者連接使用者政策,並授予其他許可。
-
使用者隨後嘗試透過儲存貯體政策與使用者政策取得的許可。
在此範例中,您將需要一個 AWS 帳戶. 您必須建立管理員使用者,而非使用帳戶的根使用者憑證 (請參閱「關於使用管理員使用者來建立資源並授予許可」)。我們指的是 AWS 帳戶 和管理員使用者,如下表所示。
帳戶 ID | 帳戶稱為 | 帳戶中的管理員使用者 |
---|---|---|
|
帳戶 A |
AccountAadmin |
注意
此範例中的系統管理員使用者是AccountAadmin指帳戶 A,而非帳戶 A AccountAdmin。
所有建立使用者與授予許可的任務都是在 AWS Management Console完成。若要驗證權限,逐步解說會使用指令行工具 AWS Command Line Interface (AWS CLI) 和 AWS Tools for Windows PowerShell,因此您不需要撰寫任何程式碼。
準備演練
-
確保您有一個 AWS 帳戶 並且它具有具有管理員權限的用戶。
-
如果需要 AWS 帳戶,請註冊。我們將此帳戶稱為帳戶 A。
-
前往 https://aws.amazon.com/s3
,然後選擇 [建立 AWS 帳戶]。 -
遵循螢幕說明。
AWS 當您的帳戶處於活動狀態並可供您使用時,將通過電子郵件通知您。
-
-
在帳戶 A 中,建立系統管理員使用者
AccountAadmin
。使用帳戶 A 認證登入IAM主控台並執行下列動作: -
建立使用者
AccountAadmin
並記下使用者安全認證。如需指示,請參閱《IAM使用指南》 AWS 帳戶中的「建立IAM使用者」。
-
附加提供完整存取權AccountAadmin的使用者原則,以授予管理員權限。
如需指示,請參閱IAM使用指南中的管理IAM策略。
-
請注意使IAM用者URL的登入AccountAadmin。登入URL時,您將需要使用此功能 AWS Management Console。AWS Management Console 如需有關在何處尋找登入的詳細資訊URL,請參閱使用者指南中的「以IAM使用者身分登入」。IAM請注意URL每個帳戶的。
-
-
-
設定 AWS CLI 或 AWS Tools for Windows PowerShell。請確定您儲存系統管理員使用者認證,如下所示:
-
如果使用 AWS CLI,請在組態檔
AccountAadmin
中建立設定檔。 -
如果使用 AWS Tools for Windows PowerShell,請確定您將工作階段的認證儲存為
AccountAadmin
。
如需說明,請參閱 設定逐步解說的工具。
-
步驟 1:在帳戶 A 中建立資源並授與權限
使用帳戶 A AccountAadmin
中的使用者認證和特殊使用IAM者登入URL,登入 AWS Management Console 並執行下列動作:
-
建立值區和IAM使用者的資源
-
在 Amazon S3 主控台中建立儲存貯體。請注意您 AWS 區域 在其中建立值區的位置。如需說明,請參閱 建立儲存貯體。
-
在「主IAM控台
」中,執行下列動作: -
建立名為 Dave 的使用者。
如需 step-by-step 指示,請參閱《使IAM用指南》中的「建立使用IAM者 (主控台)」。
-
請注意
UserDave
認證。 -
請注意使用者 Dave 的 Amazon 資源名稱 (ARN)。在 [主IAM控台
] 中,選取使用者,[摘要] 索引標籤會提供使用者ARN。
-
-
-
授予權限。
由於值區擁有者和使用者所屬的父帳戶相同,因此 AWS 帳戶 可以使用值區政策、使用者策略或兩者同時授予使用者權限。在本範例中兩種方式都會使用。如果物件也屬於同一IAM帳戶,則值區擁有者可以在值區政策(或策略)中授予物件權限。
-
在 Amazon S3 主控台中,將下列儲存貯體政策附加到
awsexamplebucket1
.此政策具有兩個陳述式。
-
第一個陳述式會授予 Dave 儲存貯體操作許可
s3:GetBucketLocation
與s3:ListBucket
。 -
第二個陳述式則會授予
s3:GetObject
許可。因為帳戶 A 也擁有該物件,所以帳戶管理員能夠授予s3:GetObject
許可。
在
Principal
聲明中,戴夫是由他的用戶標識ARN。如需政策元素的詳細資訊,請參閱「Amazon S3 中的政策和許可」。{ "Version": "2012-10-17", "Statement": [ { "Sid": "statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
AccountA-ID
:user/Dave" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1
" ] }, { "Sid": "statement2", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::AccountA-ID
:user/Dave" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1
/*" ] } ] } -
-
使用下列政策,建立使用者 Dave 的內嵌政策。政策也會將
s3:PutObject
許可授予使用者 Dave。您必須提供儲存貯體名稱以更新政策。{ "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionForObjectOperations", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::
awsexamplebucket1
/*" ] } ] }如需指示,請參閱《使用指南》IAMpolicies中的IAM〈管理〉。請記得您需要使用帳戶 A 憑證來登入主控台。
-
步驟 2:測試許可
使用 Dave 的憑證,驗證該許可可用。您可以從下列兩個程序中使用其中一項來進行:
使用測試權限 AWS CLI
-
透過新增下列
UserDaveAccountA
設定檔來更新 AWS CLI 組態檔案。如需詳細資訊,請參閱設定逐步解說的工具。[profile UserDaveAccountA] aws_access_key_id =
access-key
aws_secret_access_key =secret-access-key
region =us-east-1
-
驗證 Dave 可執行使用者政策中授予的操作。使用下列 AWS CLI
put-object
命令上傳範例物件。命令中的 -
--body
參數會識別要上傳的來源檔案。例如,如果檔案位於機器上 C: 磁碟Windows機的根目錄中,您可以指定c:\HappyFace.jpg
。--key
參數提供物件的金鑰名稱。aws s3api put-object --bucket
awsexamplebucket1
--keyHappyFace.jpg
--bodyHappyFace.jpg
--profile UserDaveAccountA運行以下 AWS CLI 命令以獲取對象。
aws s3api get-object --bucket awsexamplebucket1 --key
HappyFace.jpg
OutputFile.jpg
--profile UserDaveAccountA
使用測試權限 AWS Tools for Windows PowerShell
-
將戴夫的憑據存儲為
AccountADave
. 然後,您將這些認證用於PUT
和GET
對象。set-awscredentials -AccessKey
AccessKeyID
-SecretKeySecretAccessKey
-storeas AccountADave -
使用使用者 Dave 的預存認證,使用 AWS Tools for Windows PowerShell
Write-S3Object
命令上傳範例物件。Write-S3Object -bucketname
awsexamplebucket1
-keyHappyFace.jpg
-fileHappyFace.jpg
-StoredCredentials AccountADave下載上述已上傳的物件。
Read-S3Object -bucketname
awsexamplebucket1
-keyHappyFace.jpg
-fileOutput.jpg
-StoredCredentials AccountADave