在 NetScaler VPX 实例上配置亚马逊身份和访问管理角色
在 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 地址的 HA 对:
"ec2:DescribeInstances",
"ec2:AssignPrivateIpAddresses",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
在同一 AWS 区域中使用 IPv6 地址的 HA 对:
"ec2:DescribeInstances",
"ec2:AssignIpv6Addresses",
"ec2:UnassignIpv6Addresses",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
在同一 AWS 区域中同时使用 IPv4 和 IPv6 地址的 HA 对:
"ec2:DescribeInstances",
"ec2:AssignPrivateIpAddresses",
"ec2:AssignIpv6Addresses",
"ec2:UnassignIpv6Addresses",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
跨不同 AWS 区域使用弹性 IP 地址的 HA 对:
"ec2:DescribeInstances",
"ec2:DescribeAddresses",
"ec2:AssociateAddress",
"ec2:DisassociateAddress",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
跨不同 AWS 区域使用私有 IP 地址的 HA 对:
"ec2:DescribeInstances",
"ec2:DescribeRouteTables",
"ec2:DeleteRoute",
"ec2:CreateRoute",
"ec2:ModifyNetworkInterfaceAttribute",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
跨不同 AWS 区域同时使用私有 IP 和弹性 IP 地址的 HA 对:
"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-->确保您提供的“Version”键值对与 AWS 自动生成的键值对相同。
-
点击下一步: 审核。

-
在审核策略选项卡中,为策略指定一个有效名称,然后点击创建策略。

-
在身份访问管理页面中,点击您创建的策略名称。展开策略以检查整个 JSON,然后点击下一步。

-
在“命名、审核和创建”页面中,为角色指定一个有效名称。

-
单击“创建角色”。

-
-
重复步骤 1、2 和 3。选择“刷新”按钮,然后选择下拉菜单以查看您创建的角色。

-
单击“更新 IAM 角色”。

使用 IAM 策略模拟器测试 IAM 策略
IAM 策略模拟器是一种工具,可让您在将 IAM 访问控制策略提交到生产环境之前测试其效果。它使验证和排查权限问题变得更加容易。
-
在“IAM”页面中,选择要测试的 IAM 角色,然后单击“模拟”。在以下示例中,“ADC_IAMRole”是 IAM 角色。

-
在“IAM 策略模拟器”控制台中,选择“现有策略”作为“模式”。

-
在“用户、组和角色”选项卡中,从下拉菜单中选择“角色”,然后选择一个现有角色。
选择现有角色(/zh-cn/vpx/media/iam-users-groups-roles.png)
-
选择现有角色后,选择其下的现有策略。
选择现有策略(/zh-cn/vpx/media/iam-users-groups-policies.png)
-
选择策略后,您可以在屏幕左侧看到确切的 JSON。在“选择操作”下拉菜单中选择所需的操作。
选择所需策略(/zh-cn/vpx/media/iam-policy-json.png)
-
单击“运行模拟”。
选择所需策略(/zh-cn/vpx/media/iam-run-simulation.png)
有关详细信息,请参阅 AWS IAM 文档。