如何使用 IAM 角色跨 AWS 帳戶委派 Amazon OpenSearch Service 存取權?

2 分的閱讀內容
0

我想與不同帳戶中的使用者共用我帳戶中的 Amazon OpenSearch Service 資源。該如何進行?

簡短描述

為您的 OpenSearch Service 網域啟用跨帳戶存取的最簡單方法,是使用 AWS Identity and Access Management (IAM) 角色來設定跨帳戶控制。在目標帳戶中新增 IAM 角色後,您可以允許信任帳戶的使用者存取目標帳戶下的 OpenSearch Service 網域。如此一來,貴組織中的不同使用者可以在 AWS 管理主控台中切換 IAM 角色來存取及管理集中記錄站。

對於使用者使用 IAM 角色存取您的網域資源,程序如下:

  1. 在帳戶 A 中建立允許存取目標網域的角色。
  2. 在帳戶 B 下建立允許在帳戶 A 中擔任角色的使用者。
  3. 授予帳戶 B 中的使用者存取權,以透過切換角色來使用角色存取目標網域。

**注意:**帳戶 A 是目標網域所在的帳戶。帳戶 B 是使用者從中存取集中記錄站的帳戶。

解決方案

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確保您使用的是最新的 AWS CLI 版本

建立角色並授予管理網域的許可

在此範例中,我們會建立名為 CrossAccount-test 的角色,並授予管理網域 test 的完整許可。

{
     "Version": "2012-10-17",
     "Statement": [{
          "Effect": "Allow",
          "Action": [
               "es:*"
          ],
          "Resource": "arn:aws:es:<Region>:<Account A-ID>:domain/test/*"
     }]
}

編輯角色的信任關係

接下來,編輯角色 CrossAccount-test 的信任關係。

**注意:**據以變更帳戶號碼和使用者名稱。

{
     "Version": "2012-10-17",
     "Statement": [{
          "Effect": "Allow",
          "Principal": {
               "Service": "es.amazonaws.com",
               "AWS": ["arn:aws:iam::<Account B-ID>:root", "arn:aws:iam::<Account B-ID>:user/<User Name>"]
          },
          "Action": "sts:AssumeRole"
     }]
}

在步驟 1 和 2 中,您將帳戶 B 中的使用者定義為受信任的實體,並授予完整許可,以允許受信任的使用者存取帳戶 A 中的網域。

將存取權授予帳戶 B 中的使用者

在帳戶 B 中,建立具有下列許可的使用者或群組:

{
     "Version": "2012-10-17",
     "Statement": {
          "Effect": "Allow",
          "Action": "sts:AssumeRole",
          "Resource": "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
     }
}

當您新增這個原則陳述式時,即允許帳戶 A 中 CrossAccount-test 角色上的 AssumeRole 動作。

**注意:**確定您已將資源元素中的 ACCOUNT A-ID 變更為帳戶 A 的 AWS 帳戶 ID。

編輯 OpenSearch Service 存取政策以允許角色存取網域

此時,您已信任帳戶 B 擔任帳戶 A 中的角色。接著,請允許這個角色存取您的網域。

編輯 OpenSearch Service 存取政策並輸入以下內容:

{
     "Version": "2012-10-17",
     "Statement": [{
          "Effect": "Allow",
          "Principal": {
               "AWS": [
                    "arn:aws:iam::<Account A-ID>:role/<CrossAccount-test>"
               ]
          },
          "Action": "es:*",
          "Resource": "arn:aws:es:<region>:<Account A-ID>:domain/<Domain Name>/*"
     }]
}

透過切換角色來測試存取

現在您已啟用跨帳戶支援,請切換角色以測試存取權:

  1. 將 CrossAccount-test ARN 複製到您的剪貼簿。
  2. 使用 AWS 管理主控台登入帳戶 B。
  3. User (使用者) 標籤中,從下拉式清單中選擇 Switch Role (切換角色)。
  4. Switch Role (切換角色) 頁面上,輸入帳戶 A 的帳戶 ID 和角色名稱。在此範例中,角色名稱為 CrossAccount-test
  5. 選擇 Switch Role (切換角色)。

**注意:**如果帳戶 B 需要在命令列的帳戶 A 環境中運作,您可以使用 AWS CLI 來切換角色。如需詳細資訊,請參閱切換角色 (AWS CLI)

您的使用者許可會立即切換至您在帳戶 A 下建立的角色所允許的許可,透過這種方式設定您的跨帳戶存取權限,您的使用者不需要在不同帳戶下建立個別 IAM 使用者。您也不需要從一個帳戶登出,然後登入另一個帳戶來存取資源。


相關資訊

Amazon OpenSearch Service 中的 Identity and Access Management

AWS 官方
AWS 官方已更新 2 年前