

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# Amazon EKS 用に AWS Secrets and Configuration Provider CSI を Pod Identity と使用する
<a name="ascp-pod-identity-integration"></a>

Amazon Elastic Kubernetes Service 用の Pod Identity Agent との AWS Secrets and Configuration Provider の統合により、Amazon EKS で実行されているアプリケーションのセキュリティが強化され、設定が簡素化され、パフォーマンスが向上します。Pod Identity により、AWS Systems Manager Parameter Store からパラメータを取得するとき、または Secrets Manager からシークレットを取得するときに、Amazon EKS の AWS Identity and Access Management (IAM) 認証が簡素化されます。

Amazon EKS Pod Identity によって Amazon EKS インターフェイスを介してアクセス許可を直接設定できるようになるため、Kubernetes アプリケーションの IAM アクセス許可を設定するプロセスが合理化され、ステップ数が減少し、Amazon EKS と IAM サービスを切り替える必要がなくなります。Pod Identity では、信頼ポリシーを更新することなく複数のクラスターで 1 つの IAM ロールを使用でき、より詳細なアクセスコントロールのための[ロールセッションタグ](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags)がサポートされます。このアプローチでは、ロール間でアクセス許可ポリシーを再利用できるようにすることでポリシー管理が簡素化されるだけでなく、一致するタグに基づいて AWS リソースへのアクセスを有効にすることでセキュリティが強化されます。

## 仕組み
<a name="how-it-works"></a>

1. Pod Identity はポッドに IAM ロールを割り当てます。

1. ASCP はこのロールを使用して AWS のサービスで認証します。

1. 承認されると、ASCP はリクエストされたパラメータを取得し、ポッドで使用できるようにします。

詳細については、「*Amazon EKS ユーザーガイド*」の「[EKS Pod Identity の仕組みを理解する](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-how-it-works.html)」を参照してください。

## 前提条件
<a name="prerequisites"></a>

**重要**  
Pod Identity は、クラウド内の Amazon EKS でのみサポートされています。Amazon EC2 インスタンスの [Amazon EKS Anywhere](https://aws.amazon.com/eks/eks-anywhere/)、[Red Hat OpenShift Service on AWS](https://aws.amazon.com/rosa/)、またはセルフマネージド Kubernetes クラスターではサポートされていません。
+ Amazon EKS クラスター (バージョン 1.24 以降)
+ `kubectl` を介した AWS CLI および Amazon EKS クラスターへのアクセス
+ (オプション) クロスアカウントアクセス用の 2 つの AWS アカウントへのアクセス

## Amazon EKS Pod Identity Agent をインストールする
<a name="install-pod-identity-agent"></a>

クラスターで Pod Identity を使用するには、Amazon EKS Pod Identity Agent アドオンをインストールする必要があります。

**Pod Identity Agent をインストールするには**
+ Pod Identity Agent アドオンをクラスターにインストールします。

  *default placeholder text* を独自の値に置き換えます。

  ```
  eksctl create addon \
    --name eks-pod-identity-agent \
    --cluster clusterName \
    --region region
  ```

## Pod Identity を使用して ASCP を設定する
<a name="pod-identity-setup"></a>

1. ポッドがアクセスする必要があるパラメータに `ssm:GetParameters` と `ssm:DescribeParameters` のアクセス許可を付与するアクセス許可ポリシーを作成します。

1. Pod Identity の Amazon EKS サービスプリンシパルが引き受けることができる IAM ロールを作成します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Service": "pods.eks.amazonaws.com"
           },
           "Action": [
             "sts:AssumeRole",
             "sts:TagSession"
           ]
         }
       ]
     }
   ```

------

   IAM ポリシーをロールにアタッチします。

   *default placeholder text* を独自の値に置き換えます。

   ```
   aws iam attach-role-policy \
     --role-name MY_ROLE \
     --policy-arn POLICY_ARN
   ```

1. Pod Identity の関連付けを作成します。例については、「*Amazon EKS ユーザーガイド*」の「[Pod Identity の関連付けを作成する](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html#pod-id-association-create)」を参照してください。

1. ポッドにマウントするパラメータまたはシークレットを指定する `SecretProviderClass` を作成します。

   ```
   kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass-PodIdentity.yaml
   ```

   `SecretProviderClass` における IRSA と Pod Identity の主な違いは、オプションのパラメータ `usePodIdentity` です。これは、認証アプローチを決定するオプションのフィールドです。指定しない場合、デフォルトではサービスアカウントの IAM ロール (IRSA) が使用されます。
   + EKS Pod Identity を使用するには、`"true", "True", "TRUE", "t", "T"` のいずれかの値を使用します。
   + IRSA を明示的に使用するには、`"false", "False", "FALSE", "f", or "F"` のいずれかの値に設定します。

1. `/mnt/secrets-store` の下に、パラメータまたはシークレットをマウントするポッドをデプロイします。

   ```
   kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment-PodIdentity.yaml
   ```

1. プライベート Amazon EKS クラスターを使用する場合は、クラスターがある VPC に、AWS STS エンドポイントが存在していることを確認してください。エンドポイントの作成の詳細については、「*AWS Identity and Access Management ユーザーガイド*」の「[インターフェイス VPC エンドポイント](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html)」を参照してください。

### シークレットのマウントを検証する
<a name="verify-secret-mount"></a>

パラメータまたはシークレットが正しくマウントされていることを検証するには、次のコマンドを実行します。

*default placeholder text* を独自の値に置き換えます。

```
kubectl exec -it $(kubectl get pods | awk '/pod-identity-deployment/{print $1}' | head -1) -- cat /mnt/secrets-store/MyParameter
```

**Parameter Store のパラメータにアクセスするために Amazon EKS Pod Identity を設定するには**

1. ポッドがアクセスする必要があるパラメータに `ssm:GetParameters` と `ssm:DescribeParameters` のアクセス許可を付与するアクセス許可ポリシーを作成します。

1. パラメータがまだない場合は、Parameter Store で作成します。詳細については、「[Systems Manager での Parameter Store パラメータの作成](sysman-paramstore-su-create.md)」を参照してください。

## トラブルシューティング
<a name="integrating_aspc_pod_trouble"></a>

ポッドのデプロイを記述すると、ほとんどのエラーを表示できます。

**コンテナのエラーメッセージを表示するには**

1. 次のコマンドで、ポッド名のリストを取得します。デフォルトの名前空間を使用していない場合は、`-n namespace` を使用してください。

   ```
   kubectl get pods
   ```

1. 次のコマンドでポッドを記述するには、*pod-id* に前のステップで見つけたポッドのポッド ID を使用します。デフォルトの名前空間を使用していない場合は、`-n NAMESPACE` を使用してください。

   ```
   kubectl describe pod/pod-id
   ```

**ASCP のエラーを表示するには**
+ プロバイダーログで詳細情報を検索するには、次のコマンドの *PODID* に、*csi-secrets-store-provider-aws* ポッドの ID を入力します。

  ```
  kubectl -n kube-system get pods
  kubectl -n kube-system logs pod/pod-id
  ```