Configure AWS IAM roles on NetScaler VPX instance
在 Amazon EC2 实例上运行的应用程序必须在 AWS API 请求中包含 AWS 凭证。您可以将 AWS 凭证直接存储在 Amazon EC2 实例中,并允许该实例中的应用程序使用这些凭证。但您随后必须管理凭证,并确保它们安全地将凭证传递给每个实例,并在需要轮换凭证时更新每个 Amazon EC2 实例。这会增加大量额外工作。
相反,您可以使用且必须使用身份和访问管理 (IAM) 角色来管理在 Amazon EC2 实例上运行的应用程序的临时凭证。当您使用角色时,无需将长期凭证(例如用户名和密码或访问密钥)分发到 Amazon EC2 实例。相反,角色提供临时权限,应用程序在调用其他 AWS 资源时可以使用这些权限。启动 Amazon EC2 实例时,您需要指定一个 IAM 角色来与该实例关联。在该实例上运行的应用程序随后可以使用角色提供的临时凭证来签署 API 请求。
与您的 AWS 账户关联的 IAM 角色必须具有以下 IAM 权限以应对各种场景。
HA 对,在同一 AWS 区域中具有 IPv4 地址:
"ec2:DescribeInstances",
"ec2:AssignPrivateIpAddresses",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
HA 对,在同一 AWS 区域中具有 IPv6 地址:
"ec2:DescribeInstances",
"ec2:AssignIpv6Addresses",
"ec2:UnassignIpv6Addresses",
"iam:SimulatePrincipalPolicy",
"iam:GetRole"
<!--NeedCopy-->
HA 对,在同一 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-->
HA 对,跨不同 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-->确保您提供的“Version”键值对与 AWS 自动生成的键值对相同。
-
单击 下一步: 审核。

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

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

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

-
单击“创建角色”。

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

-
单击“更新 IAM 角色”。

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

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

-
在“用户、组和角色”选项卡中,从下拉菜单中选择“角色”,然后选择一个现有角色。

-
选择现有角色后,选择其下的现有策略。

-
选择策略后,您可以在屏幕左侧看到确切的 JSON。在“选择操作”下拉菜单中选择所需的操作。

-
单击“运行模拟”。

有关详细信息,请参阅 AWS IAM 文档。