我想與不同帳戶中的使用者共用我帳戶中的 Amazon OpenSearch Service 資源。該如何進行?
簡短描述
為您的 OpenSearch Service 網域啟用跨帳戶存取的最簡單方法,是使用 AWS Identity and Access Management (IAM) 角色來設定跨帳戶控制。在目標帳戶中新增 IAM 角色後,您可以允許信任帳戶的使用者存取目標帳戶下的 OpenSearch Service 網域。如此一來,貴組織中的不同使用者可以在 AWS 管理主控台中切換 IAM 角色來存取及管理集中記錄站。
對於使用者使用 IAM 角色存取您的網域資源,程序如下:
- 在帳戶 A 中建立允許存取目標網域的角色。
- 在帳戶 B 下建立允許在帳戶 A 中擔任角色的使用者。
- 授予帳戶 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>/*"
}]
}
透過切換角色來測試存取
現在您已啟用跨帳戶支援,請切換角色以測試存取權:
- 將 CrossAccount-test ARN 複製到您的剪貼簿。
- 使用 AWS 管理主控台登入帳戶 B。
- 在 User (使用者) 標籤中,從下拉式清單中選擇 Switch Role (切換角色)。
- 在 Switch Role (切換角色) 頁面上,輸入帳戶 A 的帳戶 ID 和角色名稱。在此範例中,角色名稱為 CrossAccount-test。
- 選擇 Switch Role (切換角色)。
**注意:**如果帳戶 B 需要在命令列的帳戶 A 環境中運作,您可以使用 AWS CLI 來切換角色。如需詳細資訊,請參閱切換角色 (AWS CLI)。
您的使用者許可會立即切換至您在帳戶 A 下建立的角色所允許的許可,透過這種方式設定您的跨帳戶存取權限,您的使用者不需要在不同帳戶下建立個別 IAM 使用者。您也不需要從一個帳戶登出,然後登入另一個帳戶來存取資源。
相關資訊
Amazon OpenSearch Service 中的 Identity and Access Management