如何使用 AWS IAM 存取另一個 AWS 帳戶中的資源?

1 分的閱讀內容
0

我想在另一個 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 角色時收到「存取遭拒」或「無效資訊」的錯誤訊息?