为 Amazon ES 域启用跨账户访问的最简单方法是,使用 AWS Identity and Access Management (IAM) 角色设置跨账户控制。通过在目标账户中添加 IAM 角色,您可以允许可信账户中的用户访问目标账户下的 Amazon ES 域。这样,组织中的不同用户可以通过在 AWS 控制台中切换 IAM 角色来访问和管理中央日志记录 Amazon ES 站。
为使用户可以使用 IAM 角色访问您的 Amazon ES 资源,操作流程如下:
-
在账户 A 中创建一个获准访问目标 Amazon ES 域的角色。
在账户 B 下创建一个获准在账户 A 中担任角色的用户。
通过切换角色,向账户 B 中的用户授予使用角色访问目标 Amazon ES 域的访问权限。
注意:账户 A 是具有目标 Amazon ES 域的账户。账户 B 是用户从其中访问中央日志记录站的账户。
解决方法注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您运行的是最新的 AWS CLI 版本。
向账户 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 操作。
注意:请确保将 Resource 元素中的 ACCOUNT A-ID 更改为账户 A 的 AWS 账户 ID。
此时,您已设置可信账户 B 在账户 A 中担任角色。接下来,允许此角色访问 Amazon ES 域。
编辑 Amazon ES 访问策略并输入以下内容:
{
"Version": "2012-10-17",
"Statement":
},
"Action": "es:*",
"Resource": "arn:aws:es:<region>:<Account A-ID>:domain/<Domain Name>/*"
}
]
}
通过切换角色测试访问
现在您已启用了跨账户支持,请切换角色以测试访问权限:
-
将 CrossAccount-test ARN 复制到剪贴板。
使用 AWS 控制台登录账户 B。
从用户选项卡中,在下拉列表中选择切换角色。
在切换角色页面上,输入账户 A 的账户 ID 和角色名称。在此示例中,角色名称是 CrossAccount-test。
选择切换角色。
注意:如果账户 B 需要在命令行的账户 A 环境中工作,则可以使用 AWS CLI 切换角色。有关更多信息,请参阅切换角色 (AWS CLI)。
您的用户权限立即切换到您在账户 A 下创建的角色允许的权限。通过这种方式设置跨账户访问权限,您的用户无需在不同账户下分别创建 IAM 用户。您也不必为了访问资源而退出一个账户,然后再登录另一个账户。