範例 1:為其使用者授予儲存貯體許可的儲存貯體擁有者
重要
授予許可給 IAM 角色比授予許可給個別使用者更好。如需如何授予許可給 IAM 角色的詳細資訊,請參閱了解跨帳戶許可和使用 IAM 角色。
在此逐步解說中,AWS 帳戶擁有儲存貯體,而且該帳戶包含一名 IAM 使用者。根據預設,該使用者沒有許可。父帳戶必須授予使用者許可,使用者才能執行任何任務。儲存貯體擁有者及父帳戶是相同的。因此,若要授予使用者儲存貯體的許可,AWS 帳戶 可以使用儲存貯體政策、使用者政策或這兩者。帳戶擁有者將使用儲存貯體政策授予部分許可,並使用使用者政策授予其他許可。
以下是演練步驟的摘要:
-
帳戶管理員建立儲存貯體政策,並將一組許可授予使用者。
-
帳戶管理員向使用者連接使用者政策,並授予其他許可。
-
使用者隨後嘗試透過儲存貯體政策與使用者政策取得的許可。
在此範例中,您需要一個 AWS 帳戶。您必須建立管理員使用者,而非使用帳戶的根使用者憑證 (請參閱「關於使用管理員使用者來建立資源並授予許可」)。我們會參照 AWS 帳戶與管理員使用者,如下表所示。
| 帳戶 ID | 帳戶稱為 | 帳戶中的管理員使用者 |
|---|---|---|
|
|
帳戶 A |
AccountAadmin |
注意
此範例中的管理員使用者是 AccountAadmin,它指的是帳戶 A 而非 AccountAdmin。
所有建立使用者與授予許可的任務都是在 AWS 管理主控台 完成。為了驗證許可,此演練會使用命令列工具 (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 政策。
-
記下 AccountAadmin 的 IAM 使用者登入 URL。登入 時,您必須使用此 URLAWS 管理主控台 如需何處可以找到登入 URL 的詳細資訊,請參閱《IAM 使用者指南》中的以 IAM 使用者身分登入 AWS 管理主控台。記下各個帳戶的 URL。
-
-
-
設定 AWS CLI 或 AWS Tools for Windows PowerShell。確定依照下列方式儲存管理員使用者憑證:
-
如果使用 AWS CLI,請在組態檔中建立設定檔
AccountAadmin。 -
如果使用 AWS Tools for Windows PowerShell,請確定您以
AccountAadmin身分儲存工作階段的憑證。
如需說明,請參閱「為逐步解說設定工具」。
-
步驟 1:在帳戶 A 中建立資源並授予許可
使用帳戶 A 中使用者 AccountAadmin 的憑證以及特殊 IAM 使用者登入 URL,登入 AWS 管理主控台並執行下列步驟:
-
建立儲存貯體和 IAM 使用者的資源
-
在 Amazon S3 主控台中建立儲存貯體。記下您在其中建立儲存貯體的 AWS 區域。如需說明,請參閱「建立一般用途儲存貯體」。
-
在 IAM 主控台
中,執行下列步驟: -
建立名為 Dave 的使用者。
如需逐步說明,請參閱《IAM 使用者指南》中的建立 IAM 使用者 (主控台)。
-
記下
UserDave憑證。 -
記下使用者 Dave 的 Amazon Resource Name (ARN)。在 IAM 主控台
中,選取使用者,摘要 索引標籤隨即提供使用者 ARN。
-
-
-
授予許可。
因為使用者所屬的儲存貯體擁有者與父帳戶相同,所以 AWS 帳戶 可以使用儲存貯體政策、使用者政策或兩者來授予使用者許可。在本範例中兩種方式都會使用。若物件也屬於相同帳戶,儲存貯體擁有者即可以儲存貯體政策或 IAM 政策來授予物件許可。
-
在 Amazon S3 主控台中,將下列儲存貯體政策連至
awsexamplebucket1。此政策具有兩個陳述式。
-
第一個陳述式會授予 Dave 儲存貯體操作許可
s3:GetBucketLocation與s3:ListBucket。 -
第二個陳述式則會授予
s3:GetObject許可。因為帳戶 A 也擁有該物件,所以帳戶管理員能夠授予s3:GetObject許可。
在
Principal陳述式中,Dave 將以其 ARN 識別。如需政策元素的詳細資訊,請參閱「Amazon S3 中的政策和許可」。 -
-
使用下列政策,建立使用者 Dave 的內嵌政策。政策也會將
s3:PutObject許可授予使用者 Dave。您必須提供儲存貯體名稱以更新政策。如需說明,請參閱《IAM 使用者指南》中的管理 IAM 政策。請記得您需要使用帳戶 A 憑證來登入主控台。
-
步驟 2:測試許可
使用 Dave 的憑證,驗證該許可可用。您可以從下列兩個程序中使用其中一項來進行:
使用 AWS CLI 測試許可
-
新增下列
UserDaveAccountA設定檔來更新 AWS CLI 組態檔。如需更多詳細資訊,請參閱 為逐步解說設定工具。[profile UserDaveAccountA] aws_access_key_id =access-keyaws_secret_access_key =secret-access-keyregion =us-east-1 -
驗證 Dave 可執行使用者政策中授予的操作。使用下列 AWS CLI
put-object命令來上傳範例物件。命令中的 -
--body參數會識別要上傳的來源檔案。例如,若檔案位於 Windows 電腦 C: 磁碟機的根目錄,可以指定c:\HappyFace.jpg。--key參數提供物件的金鑰名稱。aws s3api put-object --bucketawsexamplebucket1--keyHappyFace.jpg--bodyHappyFace.jpg--profile UserDaveAccountA執行下列 AWS CLI 命令即可取得物件。
aws s3api get-object --bucket awsexamplebucket1 --keyHappyFace.jpgOutputFile.jpg--profile UserDaveAccountA
使用 AWS Tools for Windows PowerShell 測試許可
-
以
AccountADave身分儲存 Dave 的憑證。然後使用這些憑證對物件進行PUT和GET操作。set-awscredentials -AccessKeyAccessKeyID-SecretKeySecretAccessKey-storeas AccountADave -
使用使用者 Dave 存放的憑證,以 AWS Tools for Windows PowerShell
Write-S3Object命令上傳範例物件。Write-S3Object -bucketnameawsexamplebucket1-keyHappyFace.jpg-fileHappyFace.jpg-StoredCredentials AccountADave下載上述已上傳的物件。
Read-S3Object -bucketnameawsexamplebucket1-keyHappyFace.jpg-fileOutput.jpg-StoredCredentials AccountADave