第 2 章 为基于 IP 的 AWS 角色假设添加额外的限制
您可以在 AWS 帐户中实施额外的安全层,以防止角色假设非允许 IP 地址。
2.1. 创建基于身份的 IAM 策略
您可以创建一个基于身份的 Identity and Access Management (IAM)策略,当请求来自红帽提供的 IP 以外的 IP 地址时,拒绝访问所有 AWS 操作。
前提条件
- 您可以使用创建和修改 IAM 策略所需的权限访问 see AWS 管理控制台。
流程
- 使用您的 AWS 帐户凭证登录到 AWS 管理控制台。
- 进入 IAM 服务。
- 在 IAM 控制台中,从左侧导航菜单中选择 Policies。
- 点击 Create policy。
- 选择 JSON 选项卡,以使用 JSON 格式定义策略。
要获取您需要输入到 JSON 策略文档中的 IP 地址,请运行以下命令:
$ ocm get /api/clusters_mgmt/v1/trusted_ip_addresses
注意这些 IP 地址不是永久的,可能随时更改。您必须持续查看 API 输出,并在 JSON 策略文档中进行必要的更新。
将以下
policy_document.json
文件复制并粘贴到编辑器中:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [] }, "Bool": { "aws:ViaAWSService": "false" } } } ] }
-
将在第 6 步中获得的所有 IP 地址复制并粘贴到
policy_document.json
文件中的"aws:SourceIp": []
数组中。 - 点 Review and create。
- 为策略提供名称和描述,并查看准确性的详细信息。
- 点 Create policy 保存该策略。
注意
条件键 aws:ViaAWSService
必须设置为 false,以便根据初始调用启用后续调用成功。例如,如果您对 aws ec2 describe-instances
进行了初始调用,则在 AWS API 服务器中进行的所有后续调用,以检索附加到 ec2 实例的 EBS 卷的信息,如果条件键 aws:ViaAWSService
没有设置为 false,则失败。后续调用会失败,因为它们会源自 AWS IP 地址,这些地址不包含在 AllowList 中。