範例 1:為其使用者授予儲存貯體許可的儲存貯體擁有者 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

範例 1:為其使用者授予儲存貯體許可的儲存貯體擁有者

重要

授予IAM角色許可比授予個別使用者許可更好。如需如何授予IAM角色許可的詳細資訊,請參閱 了解跨帳戶許可和使用IAM角色

在此演練中, AWS 帳戶 擁有儲存貯體,而 帳戶包含IAM使用者。根據預設,使用者沒有許可。父帳戶必須授予使用者許可,使用者才能執行任何任務。儲存貯體擁有者及父帳戶是相同的。因此,若要授予儲存貯體上的使用者許可, AWS 帳戶 可以使用儲存貯體政策、使用者政策或兩者。帳戶擁有者將使用儲存貯體政策授予部分許可,並使用使用者政策授予其他許可。

以下是演練步驟的摘要:

顯示 AWS 帳戶授予許可的圖表。
  1. 帳戶管理員建立儲存貯體政策,並將一組許可授予使用者。

  2. 帳戶管理員向使用者連接使用者政策,並授予其他許可。

  3. 使用者隨後嘗試透過儲存貯體政策與使用者政策取得的許可。

在此範例中,您將需要 AWS 帳戶。您必須建立管理員使用者,而非使用帳戶的根使用者憑證 (請參閱「關於使用管理員使用者來建立資源並授予許可」)。我們參考 AWS 帳戶 和管理員使用者,如下表所示。

帳戶 ID 帳戶稱為 帳戶中的管理員使用者

1111-1111-1111

帳戶 A

AccountAadmin

注意

此範例中的管理員使用者是 AccountAadmin,這是指帳戶 A,而不是 AccountAdmin

所有建立使用者與授予許可的任務都是在 AWS Management Console完成。若要驗證許可,演練會使用命令列工具、 AWS Command Line Interface (AWS CLI) 和 AWS Tools for Windows PowerShell,因此您不需要撰寫任何程式碼。

準備演練

  1. 請確定您擁有 , AWS 帳戶 且擁有具有管理員權限的使用者。

    1. 如有需要 AWS 帳戶,請註冊 。我們將此帳戶稱為帳戶 A。

      1. 前往 https://aws.amazon.com/s3 並選擇建立 AWS 帳戶

      2. 遵循螢幕說明。

        AWS 當您的帳戶處於作用中狀態且可供您使用時, 會透過電子郵件通知您。

    2. 在帳戶 A 中,建立管理員使用者 AccountAadmin。使用帳戶 A 登入資料,登入IAM主控台並執行下列操作:

      1. 建立使用者AccountAadmin並記下使用者安全憑證。

        如需指示,請參閱 使用者指南 中的在 IAM中建立 AWS 帳戶使用者。 IAM

      2. 透過連接提供完整存取權的使用者政策,AccountAadmin將管理員權限授予 。

        如需指示,請參閱 IAM 使用者指南 中的管理IAM政策

      3. 請注意 IAM的使用者登入URLAccountAadmin。登入 URL時,您將需要使用此功能 AWS Management Console。如需尋找登入位置的詳細資訊URL,請參閱 使用者指南 中的以IAM使用者 AWS Management Console 身分登入IAM 請注意URL每個帳戶的 。

  2. 設定 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 並執行下列操作:

  1. 建立儲存貯體和IAM使用者的資源

    1. 在 Amazon S3 主控台中建立儲存貯體。請注意 AWS 區域 您建立儲存貯體的 。如需說明,請參閱 建立儲存貯體

    2. IAM主控台 中,執行下列動作:

      1. 建立名為 Dave 的使用者。

        如需 step-by-step指示,請參閱 IAM 使用者指南 中的建立IAM使用者 (主控台)

      2. 請注意 UserDave憑證。

      3. 請注意使用者 Dave 的 Amazon Resource Name (ARN)。在IAM主控台 中,選取使用者,摘要索引標籤會提供使用者 ARN。

  2. 授予許可。

    由於儲存貯體擁有者和使用者所屬的父帳戶相同, AWS 帳戶 可以使用儲存貯體政策、使用者政策或兩者授予使用者許可。在本範例中兩種方式都會使用。如果物件也由相同的帳戶擁有,則儲存貯體擁有者可以在儲存貯體政策 (或IAM政策) 中授予物件許可。

    1. 在 Amazon S3 主控台中,將下列儲存貯體政策連接至 awsexamplebucket1.

      此政策具有兩個陳述式。

      • 第一個陳述式會授予 Dave 儲存貯體操作許可 s3:GetBucketLocations3:ListBucket

      • 第二個陳述式則會授予 s3:GetObject 許可。因為帳戶 A 也擁有該物件,所以帳戶管理員能夠授予 s3:GetObject 許可。

      Principal陳述式中,Dave 是由他的使用者 所識別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/*" ] } ] }
    2. 使用下列政策,建立使用者 Dave 的內嵌政策。政策也會將 s3:PutObject 許可授予使用者 Dave。您必須提供儲存貯體名稱以更新政策。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "PermissionForObjectOperations", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::awsexamplebucket1/*" ] } ] }

      如需指示,請參閱 IAM 使用者指南 中的管理IAMpolicies。請記得您需要使用帳戶 A 憑證來登入主控台。

步驟 2:測試許可

使用 Dave 的憑證,驗證該許可可用。您可以從下列兩個程序中使用其中一項來進行:

使用 測試許可 AWS CLI
  1. 新增下列UserDaveAccountA設定檔來更新 AWS CLI 組態檔案。如需詳細資訊,請參閱設定演練的工具

    [profile UserDaveAccountA] aws_access_key_id = access-key aws_secret_access_key = secret-access-key region = us-east-1
  2. 驗證 Dave 可執行使用者政策中授予的操作。使用下列 AWS CLI put-object命令上傳範例物件。

    命令中的 ---body 參數會識別要上傳的來源檔案。例如,如果檔案位於 C: 磁碟機根目錄的 Windows 機器,您可以指定 c:\HappyFace.jpg--key 參數提供物件的金鑰名稱。

    aws s3api put-object --bucket awsexamplebucket1 --key HappyFace.jpg --body HappyFace.jpg --profile UserDaveAccountA

    執行下列 AWS CLI 命令以取得物件。

    aws s3api get-object --bucket awsexamplebucket1 --key HappyFace.jpg OutputFile.jpg --profile UserDaveAccountA
使用 測試許可 AWS Tools for Windows PowerShell
  1. 將 Dave 的憑證儲存為 AccountADave。然後,將這些憑證用於 GET PUT和 物件。

    set-awscredentials -AccessKey AccessKeyID -SecretKey SecretAccessKey -storeas AccountADave
  2. 使用使用者 Dave 的儲存憑證, AWS Tools for Windows PowerShell Write-S3Object使用 命令上傳範例物件。

    Write-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file HappyFace.jpg -StoredCredentials AccountADave

    下載上述已上傳的物件。

    Read-S3Object -bucketname awsexamplebucket1 -key HappyFace.jpg -file Output.jpg -StoredCredentials AccountADave