範例 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 使用者指南中的管理 Word 政策IAM

      3. 請注意 IAM 使用者的登入 URL for AccountAadmin。登入 時,您將需要使用此 URL AWS Management Console。如需有關在何處尋找登入 URL 的詳細資訊,請參閱 IAM 使用者指南中的以 IAM 使用者 AWS Management Console 身分登入 。請注意每個帳戶的 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 使用者指南中的建立 Word 使用者 (主控台)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/*" ] } ] }

      如需指示,請參閱 IAMpolicies 使用者指南中的管理 IAM。請記得您需要使用帳戶 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