為什麼我在嘗試擔任跨帳戶 IAM 角色時收到「AccessDenied」或「無效的資訊」錯誤?

1 分的閱讀內容
0

我嘗試擔任跨帳戶 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)