Citrix ADC

Citrix ADC VPX インスタンスで AWS IAM ロールを設定します

Amazon EC2 インスタンスで実行されるアプリケーションには、AWS API リクエストに AWS 認証情報を含める必要があります。AWS 認証情報を Amazon EC2 インスタンス内に直接保存し、そのインスタンス内のアプリケーションがそれらの認証情報を使用できるようにすることができます。ただし、認証情報を管理し、認証情報が各インスタンスに安全に渡されるようにし、認証情報をローテーションするときに各 Amazon EC2 インスタンスを更新する必要があります。それは多くの追加作業です。

代わりに、Amazon EC2 インスタンスで実行されるアプリケーションの一時的な認証情報を管理するには、ID とアクセス管理 (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 ロールを作成できます。

  1. EC2 用 AWS マネジメントコンソールにログオンします。
  2. EC2 インスタンスページに移動し、ADC インスタンスを選択します。

    ADC インスタンスを選択

  3. [ アクション] > [セキュリティ] > [IAM ロールの変更]に移動します。

    アクション

  4. IAM ロールの変更ページでは 、既存の IAM ロールを選択するか、IAM ロールを作成できます。

  5. IAM ロールを作成するには、次の手順に従います。

    1. IAM ロールの変更 」ページで、「 新しい IAM ロールを作成」をクリックします。

      IAM ロールを作成

    2. ロール 」ページで、「 ロールを作成」をクリックします。

      ロールの作成

    3. [ 信頼できるエンティティタイプ ] で [ AWS service ] を選択し、[ 一般的な使用例 ] で [ EC2 ] を選択し、[ 次へ] をクリックします。

      信頼できるエンティティ

    4. 権限の追加 」ページで、「 ポリシーの作成」をクリックします。

      ポリシーの作成

    5. JSON タブをクリックして JSON エディターを開きます。

      JSON

    6. 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 によって自動的に生成されるものと同じであることを確認してください。

    7. [ 次へ:確認] をクリックします。

      IAM のレビュー

    8. [ ポリシーの確認 ] タブで、ポリシーに有効な名前を付けて、[ ポリシーの作成] をクリックします。

      レビューポリシー

    9. ID アクセス管理ページで 、作成したポリシー名をクリックします。ポリシーを展開して JSON 全体を確認し、[ 次へ] をクリックします。

      ID アクセス管理

    10. 名前、レビュー、作成 」ページで、ロールに有効な名前を付けます。

      IAM 情報を確認する

    11. ロールを作成」をクリックします。

      ロールの作成

  6. 手順 1、2、3 を繰り返します。[ 更新 ] ボタンを選択し、ドロップダウンメニューを選択すると、作成したロールが表示されます。

    ロール作成を確認

  7. IAM ロールを更新」をクリックします。

    IAM ロールを更新

IAM ポリシーシミュレーターで IAM ポリシーをテストする

IAM ポリシーシミュレーターは、IAM アクセスコントロールポリシーを実稼働環境に導入する前にその効果をテストできるツールです。権限の確認とトラブルシューティングが簡単になります。

  1. IAM ページで、テストする IAM ロールを選択し、「 Simulate」をクリックします。次の例では、「ADC_IAMRole」が IAM ロールです。

    IAM シミュレーター

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

    IAM シミュレーターモード

  3. [ ユーザー、グループ、ロール ] タブで、ドロップダウンメニューから [ ロール ] を選択し、既存のロールを選択します。

    既存のロールを選択

  4. 既存のロールを選択したら、その下にある既存のポリシーを選択します。

    既存のポリシーを選択

  5. ポリシーを選択すると、画面の左側に正確な JSON が表示されます。[アクションの選択] ドロップダウンメニューで目的のアクションを選択します

    希望するポリシーを選択してください

  6. [ シミュレーションを実行] をクリックします。

    希望するポリシーを選択してください

詳細については、 AWS IAM ドキュメントを参照してください

その他の参考資料

IAM ロールを使用して Amazon EC2 インスタンスで実行されているアプリケーションにアクセス権限を付与する

Citrix ADC VPX インスタンスで AWS IAM ロールを設定します