我嘗試擔任跨帳戶 AWS 身分和存取管理 (IAM) 角色。但我收到類似以下內容的錯誤: 「呼叫 AssumeRole 作業時發生錯誤 (AccessDenied):」或「一個或多個欄位中的資訊無效。請查看您的資訊或聯絡您的管理員。」
簡短說明
若要擔任另一個 AWS 帳戶中的 IAM 角色,請先在一個帳戶 (擔任 IAM 角色的帳戶) 中編輯權限。然後,在另一個帳戶 (允許假設 IAM 角色的帳戶) 中編輯信任政策。
例如,假設您有兩個帳戶,一個名為 Account_Bob,另一個名為 Account _Alice。您也有名為 Bob in Account_Bob 的帳戶或角色,名為 Alice in Account_Alice 的 IAM 角色。在這個案例中,Bob 會擔任名為 Alice 的 IAM 角色。
若要搭配多個帳戶或跨帳戶使用 AssumeRole API 呼叫,您必須具有信任政策,才能授予與以下範例相似的角色擔任許可:
以下是 Bob 所需許可的範例:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PermissionToAssumeAlice",
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::Account_Alice:role/Alice"
}
]
}
以下是 Alice 信任政策的範例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_Bob:user/Bob"
},
"Action": "sts:AssumeRole"
}
]
}
解決方案
若要避免在擔任跨帳戶 IAM 角色時發生錯誤,請謹記以下幾點:
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確定您使用的是最新的 AWS CLI 版本。
- 擔任的角色 Bob 必須具有 AssumeRole 許可。
- 您必須以 Bob 的身份登入 AWS 帳戶。如需詳細資訊,請參閱您的 AWS 帳戶 ID 及其別名。
- 必須存在所擔任的角色 Alice。確保未刪除該角色,且 ARN 正確配置。
- 如果您使用角色鏈結,請確定您未使用之前工作階段的 IAM 憑證。如需詳細資訊,請參閱角色術語和概念中的角色鏈結一節。
- 如果 Account_Bob 是 AWS Organizations 的一部分,則可能會有服務控制政策 (SCP),藉以限制使用 Account_Bob 或 Account_Alice 進行 AssumeRole 存取。如需詳細資訊,請參閱服務控制政策 (SCP)。
相關資訊
如何取得用以協助疑難排解 IAM 許可遭拒或未經授權錯誤的資料?
切換到角色 (主控台)
切換到 IAM 角色 (AWS CLI)