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

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

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

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

考慮事項

  • 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 エージェントの作成

エージェントの前提条件

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

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

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

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

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

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

  • ノードは Amazon EKS Auth API にアクセスできます。プライベートクラスターでは、AWS PrivateLink の eks-auth エンドポイントが必要です。

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

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

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

  3. [アドオン] タブを選択します。

  4. [その他のアドオンを入手] を選択します。

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

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

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

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

  8. [Next] を選択します。

  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 サービスアカウントに割り当てる」を参照してください。