NetScaler VPXインスタンスでAWS IAMロールを設定する
Amazon EC2インスタンスで実行されるアプリケーションは、AWS APIリクエストにAWS認証情報を含める必要があります。AWS認証情報をAmazon EC2インスタンス内に直接保存し、そのインスタンス内のアプリケーションがそれらの認証情報を使用できるようにすることができます。しかし、その場合、認証情報を管理し、各インスタンスに安全に渡されるようにし、認証情報をローテーションする時期が来たら各Amazon EC2インスタンスを更新する必要があります。これは多くの追加作業です。
その代わりに、Amazon EC2インスタンスで実行されるアプリケーションの一時的な認証情報を管理するために、Identity and Access Management (IAM) ロールを使用することができますし、使用しなければなりません。ロールを使用する場合、長期的な認証情報(ユーザー名とパスワード、またはアクセスキーなど)を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ゾーン間のElastic 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とElastic 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ロールの作成をクリックします。

-
ロールページで、ロールの作成をクリックします。
ロールの作成(/ja-jp/vpx/media/iam-create-role.png)
-
信頼されたエンティティタイプの下でAWSサービスを選択し、一般的なユースケースの下でEC2を選択してから、次へをクリックします。
信頼されたエンティティ(/ja-jp/vpx/media/iam-trusted-entity.png)
-
アクセス許可の追加ページで、ポリシーの作成をクリックします。
ポリシーの作成(/ja-jp/vpx/media/iam-create-policy.png)
-
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によって自動的に生成されたものと同じであることを確認してください。
-
次へ: レビューをクリックします。
IAMのレビュー(/ja-jp/vpx/media/iam-next-review.png)
-
ポリシーのレビュータブで、ポリシーに有効な名前を付け、ポリシーの作成をクリックします。
ポリシーのレビュー(/ja-jp/vpx/media/iam-review-policy.png)
-
IDおよびアクセス管理ページで、作成したポリシー名をクリックします。ポリシーを展開してJSON全体を確認し、次へをクリックします。

-
「名前、レビュー、および作成」ページで、ロールに有効な名前を付けます。

-
「ロールの作成」をクリックします。

-
-
ステップ1、2、3を繰り返します。「更新」ボタンを選択し、ドロップダウンメニューを選択して、作成したロールを確認します。

-
「IAMロールの更新」をクリックします。

IAMポリシーシミュレーターでIAMポリシーをテストする
IAMポリシーシミュレーターは、IAMアクセス制御ポリシーを本番環境にコミットする前にその効果をテストできるツールです。これにより、権限の検証とトラブルシューティングが容易になります。
-
「IAM」ページで、テストするIAMロールを選択し、「シミュレート」をクリックします。次の例では、「ADC_IAMRole」がIAMロールです。

-
「IAMポリシーシミュレーター」コンソールで、「モード」として「既存のポリシー」を選択します。

-
「ユーザー、グループ、ロール」タブで、ドロップダウンメニューから「ロール」を選択し、既存のロールを選択します。
既存のロールを選択(/ja-jp/vpx/media/iam-users-groups-roles.png)
-
既存のロールを選択した後、その下の既存のポリシーを選択します。
既存のポリシーを選択(/ja-jp/vpx/media/iam-users-groups-policies.png)
-
ポリシーを選択すると、画面の左側に正確なJSONが表示されます。「アクションの選択」ドロップダウンメニューで、目的のアクションを選択します。
目的のポリシーを選択(/ja-jp/vpx/media/iam-policy-json.png)
-
「シミュレーションの実行」をクリックします。
目的のポリシーを選択(/ja-jp/vpx/media/iam-run-simulation.png)
詳細については、AWS IAMドキュメントを参照してください。