View a markdown version of this page

Amazon EKS Pod Identity エージェントのセットアップ - Amazon EKS

このページの改善にご協力ください

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。

Amazon EKS Pod Identity エージェントのセットアップ

EKS Pod Identity の関連付けは、Amazon EC2 インスタンスプロファイルから Amazon EC2 インスタンスに認証情報を提供する場合と同じような方法で、アプリケーションの認証情報を管理する機能があります。

Amazon EKS Pod Identity は、追加の EKS Auth API と各ノードで実行されるエージェントポッドを使用して、ワークロードに認証情報を提供します。

ヒント

EKS Auto Mode クラスターに EKS Pod Identity エージェントをインストールする必要はありません。この機能は EKS Auto Mode に組み込まれています。

考慮事項

  • デフォルトでは、EKS Pod Identity Agent は EKS 自動モードクラスターにプリインストールされます。詳細については、EKS Auto Mode を使用してクラスターインフラストラクチャを自動化する を参照してください。

  • EKS Pod Identity エージェントはデフォルトでポッドが認証情報をリクエストするために IPv4IPv6 のアドレスをリッスンします。エージェントは、IPv4 のループバック (localhost) IP アドレス 169.254.170.23IPv6 の localhost IP アドレス [fd00:ec2::23] を使用します。

  • IPv6 アドレスを無効にするか、または localhost IPv6 IP アドレスを禁止すると、エージェントは起動できません。IPv6 を使用できないノードでエージェントを起動するには、EKS Pod Identity エージェントで IPv6 を無効にする の手順に従って IPv6 設定を無効にします。

Amazon EKS Pod Identity エージェントの作成

エージェントの前提条件

重要

EKS Pod Identity Agent が実行されるノードは、EKS Auth API にアクセスできる必要があります。ノードにプライベートサブネットを使用している場合は、EKS Auth API の AWS PrivateLink インターフェイスエンドポイントを設定する必要があります。詳細については、AWS プライベートリンクを使用して Amazon EKS にアクセスする を参照してください。

  • 既存の Amazon EKS クラスター。デプロイするには、Amazon EKS の使用を開始する を参照してください。クラスターバージョンとプラットフォームバージョンは、EKS Pod Identity クラスターバージョン に記載されているバージョン以降である必要があります。

  • ノードロールには、エージェントが EKS Auth API で AssumeRoleForPodIdentity アクションを実行する権限があります。AWS マネージドポリシー: AmazonEKSWorkerNodePolicy を使用するか、次のようなカスタムポリシーを追加できます。

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks-auth:AssumeRoleForPodIdentity" ], "Resource": "*" } ] }

    このアクションをタグで制限して、エージェントを使用するポッドが引き受けることができるロールを制限できます。

  • ノードは Amazon ECR にアクセスしてイメージをダウンロードできます。アドオンのコンテナイメージは、「Amazon EKS アドオンの Amazon コンテナイメージレジストリの表示」に記載されているレジストリにあります。

    なお、イメージの場所を変更して、AWS マネジメントコンソール の [オプションの設定] や AWS CLI の --configuration-values で EKS アドオンの imagePullSecrets を提供することができます。

AWS コンソールでエージェントを設定する

  1. Amazon EKS コンソール を開きます。

  2. 左のナビゲーションペインで、[クラスター] を選択し、次にアドオンを設定するEKS Pod Identity エージェントを選択します。

  3. [アドオン] タブを選択してください。

  4. [その他のアドオンを入手] を選択してください。

  5. EKS Pod Identity のアドオンボックスの右上にあるボックスを選択し、[次へ] を選択します。

  6. [選択したアドオン設定を構成する] ページの [バージョン] ドロップダウンリストで任意のバージョンを選択します。

  7. (オプション) [オプションの設定] を展開して追加の設定を入力します。例えば、代替のコンテナイメージの場所と ImagePullSecrets を指定できます。許可されたキーのある JSON スキーマは、[アドオン設定スキーマ] に表示されます。

    設定キーと値を [設定値] に入力します。

  8. [次へ] を選択します。

  9. EKS Pod Identity がクラスター上で実行されていることを確認してください。

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    出力例は次のとおりです。

    eks-pod-identity-agent-gmqp7 1/1 Running 1 (24h ago) 24h eks-pod-identity-agent-prnsh 1/1 Running 1 (24h ago) 24h

    これで、クラスターで EKS Pod Identity の関連付けを使用できるようになりました。詳細については、IAM ロールを Kubernetes サービスアカウントに割り当てる を参照してください。

AWS CLI でエージェントを設定する

  1. 次の AWS CLI コマンドを実行します。my-cluster を自分のクラスター名に置き換えます。

    aws eks create-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1
    注記

    EKS Pod Identity エージェントは、サービスアカウントの IAM ロール 用の service-account-role-arn を使用しません。EKS Pod Identity エージェントにはノードロールの権限を付与する必要があります。

  2. EKS Pod Identity がクラスター上で実行されていることを確認してください。

    kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'

    出力例は次のとおりです。

    eks-pod-identity-agent-gmqp7 1/1 Running 1 (24h ago) 24h eks-pod-identity-agent-prnsh 1/1 Running 1 (24h ago) 24h

    これで、クラスターで EKS Pod Identity の関連付けを使用できるようになりました。詳細については、IAM ロールを Kubernetes サービスアカウントに割り当てる を参照してください。