在 NetScaler VPX 实例上配置 AWS IAM 角色
在 Amazon EC2 实例上运行的应用程序必须在 AWS API 请求中包含 AWS 证书。 您可以将 AWS 证书直接存储在 Amazon EC2 实例中,并允许该实例中的应用程序使用这些证书。 但是您随后必须管理证书,确保它们安全地将证书传递给每个实例,并在需要轮换证书时更新每个 Amazon EC2 实例。 这是大量额外的工作。
相反,您可以而且必须使用身份和访问管理 (IAM) 角色来管理在 Amazon EC2 实例上运行的应用程序的临时证书。 使用角色时,不必向 Amazon EC2 实例分配长期证书(例如用户名和密码或访问密钥)。 相反,该角色提供了应用程序在调用其他 AWS 资源时可以使用的临时权限。 当您启动 Amazon EC2 实例时,您需要指定一个与该实例关联的 IAM 角色。 然后,在实例上运行的应用程序可以使用角色提供的临时证书来签署 API 请求。
与您的 AWS 帐户关联的 IAM 角色在各种情况下必须具有以下 IAM 权限。
高可用性与同一 AWS 区域中的 IPv4 地址配对:
"ec2:DescribeInstances",
"ec2:AssignPrivateIpAddresses",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
高可用性与同一 AWS 区域中的 IPv6 地址配对:
"ec2:DescribeInstances",
"ec2:AssignIpv6Addresses",
"ec2:UnassignIpv6Addresses",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
在同一 AWS 区域中同时使用 IPv4 和 IPv6 地址的高可用性配对:
"ec2:DescribeInstances",
"ec2:AssignPrivateIpAddresses",
"ec2:AssignIpv6Addresses",
"ec2:UnassignIpv6Addresses",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
HA 与跨不同 AWS 区域的弹性 IP 地址配对:
"ec2:DescribeInstances",
"ec2:DescribeAddresses",
"ec2:AssociateAddress",
"ec2:DisassociateAddress",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
HA 与不同 AWS 区域中的专用 IP 地址配对:
"ec2:DescribeInstances",
"ec2:DescribeRouteTables",
"ec2:DeleteRoute",
"ec2:CreateRoute",
"ec2:ModifyNetworkInterfaceAttribute",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
高可用性与不同 AWS 区域中的私有 IP 和弹性 IP 地址配对:
"ec2:DescribeInstances",
"ec2:DescribeAddresses",
"ec2:AssociateAddress",
"ec2:DisassociateAddress",
"ec2:DescribeRouteTables",
"ec2:DeleteRoute",
"ec2:CreateRoute",
"ec2:ModifyNetworkInterfaceAttribute",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
AWS 后端自动扩缩:
"ec2:DescribeInstances",
"autoscaling:*",
"sns:CreateTopic",
"sns:DeleteTopic",
"sns:ListTopics",
"sns:Subscribe",
"sqs:CreateQueue",
"sqs:ListQueues",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes",
"sqs:SetQueueAttributes",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
注意事项:
- 如果您使用上述功能的任意组合,请使用每个功能的 IAM 权限组合。
- 如果使用 Citrix CloudFormation 模板,则会自动创建 IAM 角色。 该模板不允许选择已创建的 IAM 角色。
- 通过 GUI 登录 VPX 实例时,会出现为 IAM 角色配置所需权限的提示。 如果已配置权限,请忽略该提示。
- 对于独立部署和高可用性部署,IAM 角色都是必需的。
创建 IAM 角色
此过程介绍如何为 AWS 后端自动扩展功能创建 IAM 角色。
注意:
您可以按照相同的程序创建与其他功能对应的任何 IAM 角色。
- 登录适用于 EC2 的 AWS 管理控制台。
-
转到 EC2 实例页面,然后选择您的 ADC 实例。
-
导航到 操作 > 安全 > 修改 IAM 角色。
-
在 修改 IAM 角色 页面中,您可以选择现有 IAM 角色或创建 IAM 角色。
-
要创建 IAM 角色,请执行以下步骤:
-
在 修改 IAM 角色 页面中,单击 创建新的 IAM 角色。
-
在“角色”页面中,单击“创建角色”。
-
在“可信实体类型”下选择 AWS 服务 ,在“常见用例”下选择 EC2 ,然后单击“下一步”。
-
在“添加权限”页面中,单击“创建策略”。
-
单击 JSON 选项卡打开 JSON 编辑器。
-
在 JSON 编辑器中,删除所有内容并粘贴要使用的功能的 IAM 权限。
例如,粘贴以下 AWS 后端自动扩展功能的 IAM 权限:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "autoscaling:*", "sns:CreateTopic", "sns:DeleteTopic", "sns:ListTopics", "sns:Subscribe", "sqs:CreateQueue", "sqs:ListQueues", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:SetQueueAttributes", "iam:SimulatePrincipalPolicy", "iam:GetRole" ], "Resource": "*" } ] } <!--NeedCopy-->
确保您提供的“版本”密钥值对与 AWS 自动生成的密钥值对相同。
-
单击“下一步:审阅”。
-
在“查看策略”选项卡中,为策略指定有效名称,然后单击“创建策略”。
-
在“身份访问管理”页面中,单击您创建的策略名称。 展开策略以检查整个 JSON,然后单击“下一步”。
-
在“名称、查看和创建”页面中,为角色指定有效名称。
-
单击“创建角色”。
-
-
重复步骤:1、2 和 3。 选择“刷新”按钮,然后选择下拉菜单以查看您创建的角色。
-
单击“更新 IAM 角色”。
使用 IAM 策略模拟器测试 IAM 策略
IAM 策略模拟器是一种工具,可让您在将 IAM 访问控制策略提交到生产环境之前测试 IAM 访问控制策略的效果。 验证权限和排除权限问题更容易。
-
在 IAM 页面中,选择要测试的 IAM 角色,然后单击“模拟”。 在以下示例中,“ADC_IAMRole”是 IAM 角色。
-
在 IAM 策略模拟器 控制台中,选择 现有策略 作为 模式。
-
在 用户、组和角色 选项卡中,从下拉菜单中选择 角色 ,然后选择现有角色。
-
选择现有角色后,选择其下的现有策略。
-
选择策略后,您可以在屏幕左侧看到确切的 JSON。 在“选择操作”下拉菜单中 选择所需的操作 。
-
单击“运行模拟”。
有关详细信息,请参阅 AWS IAM 文档。