我想在另一個 AWS 帳戶中擔任 AWS Identity and Access Management (IAM) 角色。如何使用 IAM 設定跨帳戶存取權?
簡短說明
您可以使用另一個 AWS 帳戶中的 IAM 角色設定信任關係,存取其資源。例如,您想要從來源帳戶存取目的地帳戶。若要這麼做,請提供 AssumeRole API 的 IAM 使用者許可,擔任來源或目的地帳戶的 IAM 角色。您必須在目的地 IAM 角色的信任關係中指定 IAM 使用者。
注意事項: 您也可以擔任來源 IAM 角色或目的地 IAM 角色,而不是搭配角色鏈結使用使用者角色。角色鏈結僅適用於程式設計存取,例如 AWS Command Line Interface (AWS CLI) 或 API。無法使用 AWS 管理主控台變更角色。
解決方法
依照下列指示為來源帳戶建立 IAM 許可政策,將政策連接至使用者,然後為目的地帳戶建立角色。
**注意事項:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確認您使用最新 AWS CLI 版本。
來源帳戶
1. 建立 IAM 政策,如下所示:
**注意事項:**以您自己的值替換 DESTINATION-ACCOUNT-ID 和 DESTINATION-ROLENAME。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::DESTINATION-ACCOUNT-ID:role/DESTINATION-ROLENAME"
]
}
]
}
2. 連接 IAM 政策至您的 IAM 使用者許可。
按照此處的步驟操作,將建立的政策連接至您的 IAM 使用者許可。
目的地帳戶
1. 建立 IAM 角色。
2. 貼上自訂信任政策,如下所示:
**注意事項:**以您自己的值替換 SOURCE-ACCOUNT-ID 和 SOURCE-USERNAME。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SOURCE-ACCOUNT-ID:user/SOURCE-USERNAME"
},
"Action": "sts:AssumeRole"
}
]
}
**注意事項:**如果您無權建立和編輯 IAM 角色和使用者,請尋求帳戶擁有者協助以完成此流程。最佳實務是僅將帳戶和資源的存取權授予您信任的實體。
您可以修改此政策,允許視需求擔任與目的地角色一樣多的來源實體。例如,您可以將目的地帳戶信任政策的主體值變更為 "AWS": 「源帳戶 ID」。這可讓來源帳戶中具有擔任角色許可的所有實體,擔任目的地帳戶角色。如需詳細資訊,請參閱指定主體及建立或編輯政策。
測試您的存取權
若要測試您的存取權,請按照切換到角色 (主控台) 的指示來操作。
-或-
請按照切換到 IAM 角色 (AWS CLI) 的指示來操作。
如需詳細資訊,請參閱 IAM 教學課程: 使用 IAM 角色將存取許可委派給不同 AWS 帳戶。
相關資訊
如何使用 AWS CLI 擔任 IAM 角色?
我建立或更新了 IAM 政策,但收到「已禁止欄位主體」的錯誤訊息。如何解決此問題?
如何提供 Amazon S3 儲存貯體物件的跨帳戶存取權?
為什麼我在嘗試擔任跨帳戶 IAM 角色時收到「存取遭拒」或「無效資訊」的錯誤訊息?