本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
IAM 教學課程:使用 IAM 角色將存取許可委派給不同 AWS 帳戶
重要
此教學課程教導您如何使用角色將存取權委派給不同 AWS 帳戶 (稱為目的地和來源) 中的資源。您與不同帳戶中的使用者分享一個帳戶中的資源。透過以這種方式設定跨帳戶存取,您不需要在每個帳戶中建立個別的 IAM 使用者。此外,使用者不需要為了存取不同 AWS 帳戶中的資源,登出一個帳戶然後登入另一個帳戶。設定角色後,您會看到如何從 AWS Management Console AWS CLI、 和 API 使用角色。
在本教學課程中,目的地帳戶會管理不同應用程式和團隊存取的應用程式資料。在每個帳戶中,應用程式資訊存放在 Amazon S3 儲存貯體中。可以在來源帳戶中管理 IAM 使用者,您在其中擁有兩個 IAM 使用者角色:開發人員和分析師。開發人員和分析師使用來源帳戶來產生多個微服務共用的資料。兩個角色都有權在來源帳戶中工作並存取資源。開發人員必須經常更新目的地帳戶中的共用資料。開發人員將此資料存放在稱為 amzn-s3-demo-bucket-shared-container
的 Amazon S3 儲存貯體中。
在本教學的結尾,您會擁有:
-
允許來源帳戶 (受信任帳戶) 中的使用者在目的地帳戶中擔任特定角色。
-
允許目的地帳戶 (信任帳戶) 中的角色存取特定 Amazon S3 儲存貯體。
-
目的地帳戶中的
amzn-s3-demo-bucket-shared-container
儲存貯體。
開發人員可以使用 中的 角色 AWS Management Console 來存取目的地帳戶中的 儲存amzn-s3-demo-bucket-shared-container
貯體。他們也可以透過使用 API 呼叫來存取儲存貯體,而該呼叫是由角色提供的暫時性憑證進行身分驗證。分析師進行類似嘗試來使用角色會失敗。
此工作流程有三個基本步驟:
- 在目的地帳戶中建立角色
-
首先,您可以使用 AWS Management Console 建立目的地帳戶 (ID 編號 999999999999) 與原始帳戶 (ID 編號 111111111111) 之間的信任。透過建立一個名為 UpdateData 的 IAM 角色開始。建立角色後,您可以將來源帳戶定義為受信任的實體並指定許可政策,該政策允許受信任的使用者更新
amzn-s3-demo-bucket-shared-container
儲存貯體。 - 授予角色存取權
-
在本節中,您修改角色政策,以拒絕分析師存取
UpdateData
角色。由於分析師在此案例中具有 PowerUser 存取權,您必須明確拒絕使用角色的能力。 - 透過切換角色測試存取
-
最後,作為開發人員,使用
UpdateData
角色來更新目的地帳戶中的amzn-s3-demo-bucket-shared-container
儲存貯體。您會了解如何透過 AWS 主控台 AWS CLI、 和 API 存取角色。
考量事項
在您使用 IAM 角色委派跨資源存取之前 AWS 帳戶,請務必考量下列事項:
-
以 AWS 帳戶根使用者身分登入時無法切換到特定角色。
-
IAM 角色和資源型政策只會在單一分割內跨帳戶委派存取許可。例如,假設您在標準
aws
分割區的美國西部 (加利佛尼亞北部) 中有一個帳戶。您在aws-cn
分割區的中國 (北京) 中也有一個帳戶。您不能使用中國 (北京) 中帳戶的 Amazon S3 資源型政策,對標準aws
帳戶中的使用者允許存取許可。 -
您可以使用 AWS IAM Identity Center 來使用安全聲明標記語言 (SAML) 促進外部 AWS 帳戶 (您 外部的帳戶 AWS Organizations) 的單一登入 (SSO)。如需詳細資訊,請參閱使用 SAML 2.0 將外部整合至具有獨立計費 AWS 帳戶AWS IAM Identity Center 的中央存取管理
-
您可以將角色與 Amazon EC2 執行個體或 AWS Lambda 函數等 AWS 資源建立關聯。如需詳細資訊,請參閱 建立角色以將許可委派給 AWS 服務。
-
如果您想要讓應用程式在另一個 中擔任角色 AWS 帳戶,您可以使用 AWS SDK 進行跨帳戶角色假設。如需詳細資訊,請參閱 AWS SDKs and Tools Reference Guide 中的 Authentication and access。
-
AWS Management Console 只使用 切換角色適用於不需要 的帳戶
ExternalId
。例如,假設您將您帳戶的存取權授與第三方,並在許可政策的Condition
元素中需要ExternalId
。在這種情況下,第三方只能使用 AWS API 或命令列工具存取您的帳戶。第三方無法使用主控台,因為它必須提供ExternalId
的值。如需此案例的詳細資訊,請參閱 存取第三方擁有的 AWS 帳戶和 AWS 安全部落格中的如何啟用跨帳戶存取 AWS Management Console。
必要條件
此教學課程假設您已備妥下列項目:
-
AWS 帳戶 您可以分別使用兩個 、一個 代表原始帳戶,另一個 代表目的地帳戶。
-
來源帳戶中使用者和角色的建立和設定,如下所示:
職稱 使用者 許可 開發人員 David 兩個使用者可以登入並使用原始帳戶中 AWS Management Console 的 。 分析師 Jane -
不需要在目的地帳戶中建立任何使用者。
-
在目的地帳戶中建立的 Amazon S3 儲存貯體。您可在此教學課程中將其稱為
amzn-s3-demo-bucket-shared-container
,但因為 S3 儲存貯體名稱必須是全域唯一,所以您必須使用不同名稱的儲存貯體。
在目的地帳戶中建立角色
您可以允許某個使用者 AWS 帳戶 存取另一個資源 AWS 帳戶。在本教學課程中,我們將透過建立一個角色來完成操作,該角色定義誰可以存取它,以及它會將哪些許可授予給切換到它的使用者。
在教學課程的此步驟中,您在目的地帳戶中建立角色,並指定來源帳戶作為受信任的實體。您也限制角色的許可為僅擁有讀取和寫入 amzn-s3-demo-bucket-shared-container
儲存貯體的存取許可。被授予許可以使用角色的任何人都可以讀取和寫入 shared-container
儲存貯體。
在建立角色之前,您需要原始 AWS 帳戶帳戶 ID。每個 AWS 帳戶 都有指派給它的唯一帳戶 ID 識別符。
取得原始 AWS 帳戶 ID
-
以原始帳戶的管理員 AWS Management Console 身分登入 ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在 IAM 主控台中,在右上角的導覽列中選擇您的使用者名稱。它通常如下:
username
@account_ID_number_or_alias
。在此案例中,您可以使用帳戶 ID 111111111111 表示來源帳戶。不過,如果您在測試環境中使用此案例,則應該使用有效的帳戶 ID。
若要在目的地帳戶中建立來源帳戶可以使用的角色
-
以目的地帳戶的管理員 AWS Management Console 身分登入 ,然後開啟 IAM 主控台。
-
建立角色之前,請準備定義角色所需許可的受管政策。您可以在稍後的步驟將此政策連接至角色。
您想要設定
amzn-s3-demo-bucket-shared-container
儲存貯體的讀取和寫入存取許可。雖然 AWS 提供一些 Amazon S3 受管政策,但沒有一個 提供單一 Amazon S3 儲存貯體的讀取和寫入存取權。您可以改為建立自己的政策。在導覽窗格中,選擇 Policies (政策),然後選擇 Create policy (建立政策)。
-
選擇 JSON 標籤並從下列 JSON 政策文件複製文字。將此文字貼到 JSON 文字方塊中,以您 Amazon S3 儲存貯體的真實 ARN 替換資源 ARN (
arn:aws:s3:::shared-container
)。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "
arn:aws:s3:::amzn-s3-demo-bucket-shared-container
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket-shared-container/*
" } ] }ListAllMyBuckets
動作授予許可,可列出已經過身分驗證的請求發送者擁有的所有儲存貯體ListBucket
許可允許使用者檢視amzn-s3-demo-bucket-shared-container
儲存貯體中的物件。GetObject
、PutObject
、DeleteObject
許可允許使用者檢視、更新和刪除amzn-s3-demo-bucket-shared-container
儲存貯體中的內容。注意
您可以隨時切換視覺化與 JSON 編輯器選項。不過,如果您進行變更或在視覺化編輯器中選擇下一步,IAM 就可能會調整您的政策結構,以便針對視覺化編輯器進行最佳化。如需詳細資訊,請參閱政策結構調整。
-
在檢視與建立頁面上,針對政策名稱輸入
read-write-app-bucket
。檢視政策授與的許可,然後選擇建立政策來儲存您的工作。新的政策會出現在受管政策清單中。
-
在導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 AWS 帳戶 角色類型。
-
針對帳戶 ID,輸入來源帳戶 ID。
此教學課程將範例帳戶 ID
111111111111
用於來源帳戶。您應該使用有效的帳戶 ID。如果您使用無效的帳戶 ID (例如111111111111
),IAM 不會讓您建立新的角色。現在您不需要要求外部 ID,或要求使用者要有多重要素驗證 (MFA) 才能擔任角色。請保持不選取這些選項。如需更多詳細資訊,請參閱 AWS IAM 中的多重要素驗證。
-
選擇 Next: Permissions (下一步:許可),以設定與角色建立關聯的許可。
-
選擇您之前建立的政策旁的核取方塊。
秘訣
針對 Filter (篩選條件),選擇 Customer managed (客戶受管) 以篩選清單,使其僅包含建立的政策。這會隱藏 AWS 建立的政策並讓找出所需項目更容易。
然後選擇下一步。
-
(選用) 藉由連接標籤作為鍵值對,將中繼資料新增至角色。如需有關在 IAM 中使用標籤的詳細資訊,請參閱 AWS Identity and Access Management 資源的標籤。
-
(選用) 在 Description (說明) 中,輸入新角色的說明。
-
檢閱角色之後,選擇 Create role (建立角色)。
UpdateData
角色會顯示在角色清單中。
現在,您必須取得角色的 Amazon Resource Name (ARN),這是該角色的唯一識別碼。當您在來源帳戶中修改開發人員的角色時,可以從目的地帳戶指定角色 ARN,以授予或拒絕許可。
若要取得 UpdateData 的 ARN
-
在 IAM 主控台的導覽窗格中,選擇 Roles (角色)。
-
在角色清單中,選擇
UpdateData
角色。 -
在詳細資訊窗格的 Summary (摘要) 區段中,複製 Role ARN (角色 ARN) 值。
目的地帳戶的帳戶 ID 為 999999999999,所以角色 ARN 為
arn:aws:iam::999999999999:role/UpdateData
。請確定您提供目的地帳戶的真實 AWS 帳戶 ID。
此時,您已在目的地和來源帳戶之間建立信任。完成上述作業的方法是在目的地帳戶中建立角色,它可將來源帳戶識別為受信任主體。您也定義切換到 UpdateData
角色的使用者可以執行什麼動作。
接下來,修改開發人員角色的許可。
授予角色存取權
此時,分析師和開發人員都擁有許可,允許他們管理來源帳戶中的資料。使用以下所需的步驟以新增各種許可允許切換到該角色。
若要修改開發人員角色,以允許他們切換到 UpdateData 角色
-
在來源帳戶中以管理員身分登入,並開啟 IAM 主控台。
-
選擇角色,然後選擇開發人員。
-
選擇 Permissions (許可) 標籤,選擇 Add permissions (新增許可),然後選擇 Attach policy (連接政策)。
-
請選擇 JSON 標籤。
-
新增以下政策陳述式,以允許針對目的地帳戶中的
UpdateData
角色進行AssumeRole
動作。請務必將Resource
元素中的DESTINATION-ACCOUNT-ID
變更為目的地帳戶的實際 AWS 帳戶 ID。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
DESTINATION-ACCOUNT-ID
:role/UpdateData" } }Allow
效果明確地允許開發人員群組存取目的地帳戶中的UpdateData
角色。任何嘗試存取角色的開發人員都會成功。 -
選擇 Review policy (檢閱政策)。
-
輸入名稱,例如
allow-assume-S3-role-in-destination
。 -
選擇 Create policy (建立政策)。
在大多數環境中,可能不需要以下程序。不過,如果您使用 PowerUserAccess 許可,則一些群組可能已經能夠切換角色。下列程序顯示如何將 "Deny"
許可新增到分析師群組,以確保他們無法擔任角色。如果在您的環境中並不需要此程序,我們建議您不要新增。"Deny"
許可會讓整體許可情況變得更複雜,不易管理和了解。只在沒有更好的選項時使用 "Deny"
許可。
若要修改分析師角色以拒絕擔任 UpdateData
角色的許可
-
選擇角色,然後選擇分析師。
-
選擇 Permissions (許可) 標籤,選擇 Add permissions (新增許可),然後選擇 Attach policy (連接政策)。
-
請選擇 JSON 標籤。
-
新增以下政策陳述式以拒絕
UpdateData
角色的AssumeRole
動作。請務必將Resource
元素中的DESTINATION-ACCOUNT-ID
變更為目的地帳戶的實際 AWS 帳戶 ID。{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
DESTINATION-ACCOUNT-ID
:role/UpdateData" } }Deny
效果明確拒絕分析師群組存取目的地帳戶中的UpdateData
角色。任何嘗試存取角色的分析師都會收到存取遭拒的訊息。 -
選擇檢閱政策。
-
輸入名稱,例如
deny-assume-S3-role-in-destination
。 -
選擇 建立政策。
開發人員角色現在擁有許可,可使用目的地帳戶中的 UpdateData
角色。會防止分析師角色使用 UpdateData
角色。
接下來,您可以了解開發人員 David 如何存取目的地帳戶中的 amzn-s3-demo-bucket-shared-container
儲存貯體。David 可以從 AWS Management Console AWS CLI、 或 AWS API 存取儲存貯體。
透過切換角色測試存取
完成此教學課程的前兩個步驟後,您會有一個角色可授予存取目的地帳戶中的資源。您在來源帳戶中也有一個角色,允許使用者使用該角色。此步驟討論如何測試從 AWS Management Console、 AWS CLI和 AWS API 切換到該角色。
若要取得您在使用 IAM 角色時可能遇到的常見問題說明,請參閱 IAM 角色疑難排解。
切換角色 (主控台)
如果 David 需要更新 中目的地帳戶中的資料 AWS Management Console,他可以使用 Switch Role 進行更新。他會指定帳戶 ID 或別名和角色名稱,而其許可會立即切換到角色所允許的項目。然後他可以利用主控台來使用 amzn-s3-demo-bucket-shared-container
儲存貯體,但無法使用目的地中的任何其他資源。當 David 使用角色時,他也無法運用他在來源帳戶中的進階使用者權限。那是因為一次只有一組許可有效。
David 可以使用 IAM 提供的兩種方式來進入 Switch Role (切換角色) 頁面:
-
David 從他們的管理員那裡收到指向預先定義的 Switch Role (切換角色) 組態的連結。該連結是在 Create Role (建立角色) 精靈的最終頁面上,或在跨帳戶角色的 Role Summary (角色摘要) 頁面上,提供給管理員。選擇此連結會帶領 David 前往已填寫 Account ID (帳戶 ID) 和 Role name (角色名稱) 欄位的 Switch Role (切換角色) 頁面。David 需要做的只有選擇 Switch Role (切換角色)。
-
管理員不會在電子郵件中傳送連結,但會改為傳送 Account ID (帳戶 ID) 號碼和 Role Name (角色名稱) 的值。若要切換角色,大衛必須手動輸入該值。下列程序中會以圖表說明:
擔任角色
-
David AWS Management Console 使用原始帳戶中的正常使用者登入 。
-
他們選擇管理員電郵給他們的連結。這會將 David 導航到 Switch Role (切換角色) 頁面,其中帳戶 ID 或別名以及角色名稱資訊已填寫。
—或—
David 在導覽列上選擇他們的名稱 (Identity (身分) 選單),然後選擇 Switch Roles (切換角色)。
如果這是 David 第一次以這種方式嘗試存取 Switch Role (切換角色) 頁面,他首先停留在初次執行的 Switch Role (切換角色) 頁面。此頁面提供有關切換角色如何讓使用者跨 AWS 帳戶管理資源的額外資訊。David 必須在此頁面上選擇 Switch Role (切換角色),以完成此程序的剩餘部分。
-
接下來,為了存取角色,David 必須手動輸入目的地帳戶 ID 號碼 (
999999999999
) 和角色名稱 (UpdateData
)。此外,David 想要監控 IAM 中目前作用中的角色 (以及相關聯的許可)。為了追蹤此資訊,他在 Display Name (顯示名稱) 文字方塊中輸入
Destination
、選擇紅色選項,然後選擇 Switch Role (切換角色)。 -
David 現在可以使用 Amazon S3 主控台來使用
UpdateData
角色所具有許可的 Amazon S3 儲存貯體或任何其他資源。 -
完成後,David 可以回到他們的原始許可。為了執行此作業,他們在導覽列上選擇目的地角色顯示名稱,然後選擇返回到 David @ 111111111111。
-
下次 David 想要切換角色和在導覽列中選擇身分選單時,他會看到上次的目的地項目仍在那裡。他可以只要選擇該項目即可立即切換角色,而無需重新輸入帳戶 ID 和角色名稱。
切換角色 (AWS CLI)
如果 David 需要在命令列的目的地環境中工作,則可以使用 AWS CLIaws sts
assume-role
命令,並傳遞角色 ARN 以取得該角色的暫時性安全憑證。然後,他會在環境變數中設定這些登入資料,以便後續 AWS CLI 命令使用角色的許可運作。雖然 David 使用該角色,但他無法在來源帳戶中使用他的進階使用者許可,因為一次只能有一組許可有效。
請注意,所有存取金鑰和權杖僅為範例,不能如下所示般使用。以您實際環境中的適當值取代。
擔任角色
-
David 會開啟命令提示視窗,並透過執行 命令來確認 AWS CLI 用戶端正在運作:
aws help
注意
David 的預設環境使用其預設設定檔的
David
使用者憑證,這是使用aws configure
命令建立的。如需詳細資訊,請參閱 AWS Command Line Interface 使用者指南中的設定 AWS Command Line Interface。 -
他透過執行以下命令開始切換角色程序,以切換到目的地帳戶中的
UpdateData
角色。他從建立角色的管理員角色收到角色 ARN。該命令也會要求您提供工作階段名稱,您可以選擇您想要的任何文字。aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/UpdateData" --role-session-name "David-ProdUpdate"
David 然後會在輸出中看到以下:
{ "Credentials": { "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "SessionToken": "AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLE CvSRyh0FW7jEXAMPLEW+vE/7s1HRpXviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDy EXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPyOj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3Uuysg sKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/Cs8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87e NhyDHq6ikBQ==", "Expiration": "2014-12-11T23:08:07Z", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE" } }
-
David 在輸出的 Credentials (憑證) 區段看到他們需要的三個部分。
-
AccessKeyId
-
SecretAccessKey
-
SessionToken
David 需要將 AWS CLI 環境設定為在後續呼叫中使用這些參數。如需設定憑證各種方式的資訊,請參閱設定 AWS Command Line Interface。您不能使用
aws configure
命令,因為它不支援擷取工作階段權杖。不過,您可以將資訊手動輸入到組態檔案中。由於這些是暫時性憑證,其過期時間相對較短,最簡單的方式是將它們新增至您目前命令列工作階段的環境。 -
-
為新增三個值到環境,David 剪下並貼上前一個步驟的輸出到以下命令中。建議您剪下並貼上到簡單的文字編輯器,來處理工作階段權杖輸出中的換行問題。它必須新增為單一長字串,即使在這裡為清楚起見以換行方式顯示。
以下範例顯示 Windows 環境中指定命令,其中 "set" 是用來建立環境變數的命令。在 Linux 或 macOS 電腦上,請改為使用命令 "export"。範例的所有其他部分在所有三個環境中均為有效。
如需使用 Windows Powershell 工具的詳細資訊,請參閱切換至 IAM 角色 (Tools for Windows PowerShell)
set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY set AWS_SESSION_TOKEN=AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvS Ryh0FW7jEXAMPLEW+vE/7s1HRpXviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXA MPLEKEY9/g7QRUhZp4bqbEXAMPLENwGPyOj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UusKd EXAMPLE1TVastU1A0SKFEXAMPLEiywCC/Cs8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLENhykxiHen DHq6ikBQ==
此時,任何下列命令在這些憑證所識別角色的許可下執行。在 David 的案例中,為
UpdateData
角色。重要
您可以將常用的組態設定和憑證儲存在 AWS CLI維護的檔案中。如需詳細資訊,請參閱《AWS Command Line Interface 使用者指南》中的使用現有組態與憑證檔案。
-
執行命令來存取目的地帳戶中的資源。在這個範例中,David 只需要使用下列命令列出他們的 S3 儲存貯體的內容。
aws s3 ls s3://shared-container
由於 Amazon S3 儲存貯體名稱是全域唯一,所以不需要指定擁有該儲存貯體的帳戶 ID。若要存取其他 AWS 服務的資源,請參閱該服務 AWS CLI 的文件,以取得參考其資源所需的命令和語法。
使用 AssumeRole (AWS API)
當 David 需要從程式碼進行目的地帳戶的更新時,他可進行 AssumeRole
呼叫以擔任 UpdateData
角色。此呼叫會傳回他可用來存取目的地帳戶中 amzn-s3-demo-bucket-shared-container
儲存貯體的臨時憑證。David 可以使用這些憑證,來進行 API 呼叫以更新 amzn-s3-demo-bucket-shared-container
儲存貯體。不過,他無法進行 API 呼叫以存取目的地帳戶中任何其他資源,即使他在來源帳戶中具有進階使用者許可。
擔任角色
-
David 呼叫
AssumeRole
作為應用程式的一部分。他們必須指定UpdateData
ARN:arn:aws:iam::999999999999:role/UpdateData
。來自
AssumeRole
呼叫的回應包含具有AccessKeyId
和SecretAccessKey
的暫時性憑證。也包含Expiration
時間,指出憑證何時過期以及必須請求新憑證的時間。當您使用 AWS SDK 設定角色鏈結時,許多登入資料提供者會在登入資料過期之前自動重新整理登入資料。 -
David 使用暫時性憑證,進行
s3:PutObject
呼叫以更新amzn-s3-demo-bucket-shared-container
儲存貯體。他們會將憑證作為AuthParams
參數傳遞到 API 呼叫。由於臨時角色憑證只有amzn-s3-demo-bucket-shared-container
儲存貯體的讀取和寫入存取權,因此目的地帳戶中的任何其他動作會被拒絕。
如需程式碼範例 (使用 Python),請參閱 切換到 IAM 角色 (AWS API)。
其他資源
下列資源可協助您進一步了解本教學課程中的主題:
-
如需有關 IAM 使用者的詳細資訊,請參閱 IAM 身分 。
-
如需使用 Amazon S3 儲存貯體的詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的建立儲存貯體。
-
若要了解在您信任區域 (受信任組織或帳戶) 外帳戶中的主體是否具有擔任您角色的許可,請參閱什麼是 IAM Access Analyzer?。
Summary
您已完成跨帳戶 API 存取教學課程。您建立了一個角色,以建立與另一個帳戶的信任,並定義了受信任實體可採取的動作。然後,修改角色政策,以控制哪些 IAM 使用者可存取角色。因此,來源帳戶的開發人員可以透過使用臨時憑證,來更新目的地帳戶中的 amzn-s3-demo-bucket-shared-container
儲存貯體。