

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

# AWS Secrets and Configuration Provider CSI をサービスアカウントの IAM ロール (IRSA) と使用する
<a name="integrating_ascp_irsa"></a>

**Topics**
+ [前提条件](#prerequisites)
+ [アクセス制御を設定する](#integrating_ascp_irsa_access)
+ [マウントするパラメータを特定する](#integrating_ascp_irsa_mount)
+ [トラブルシューティング](#integrating_ascp_irsa_trouble)

## 前提条件
<a name="prerequisites"></a>
+ Amazon EKS クラスター (バージョン 1.17 以降)
+ `kubectl` を介した AWS CLI および Amazon EKS クラスターへのアクセス

## アクセス制御を設定する
<a name="integrating_ascp_irsa_access"></a>

ASCP は Amazon EKS Pod Identity を取得し、IAM ロールと交換します。その IAM ロールの IAM ポリシーでアクセス許可を設定します。ASCP が IAM ロールを引き受けると、承認されたパラメータへのアクセス許可が付与されます。他のコンテナは、IAM ロールに関連付けない限り、パラメータにアクセスできません。

**Amazon EKS ポッドに Parameter Store のパラメータへのアクセスを許可するには**

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

1. クラスター用に IAM OpenID Connect (OIDC) プロバイダーがない場合は作成します。詳細については、「*Amazon EKS ユーザーガイド*」の「[クラスターに IAM OIDC プロバイダーを作成する](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html)」を参照してください。

1. [サービスアカウントの IAM ロール](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)を作成して、ポリシーをアタッチします。詳細については、「*Amazon EKS ユーザーガイド*」の「[サービスアカウントの IAM ロールを作成する](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)」を参照してください。

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="integrating_ascp_irsa_mount"></a>

ASCP が (ファイルシステム上のファイルとして) Amazon EKS 内にマウントするパラメータを判別するには、[SecretProviderClass](ascp-examples.md#ascp-examples-secretproviderclass) YAML ファイルを作成します。`SecretProviderClass` では、マウントするパラメータと、それらのマウントに使用されるファイル名がリストされます。`SecretProviderClass` は、参照する Amazon EKS ポッドと同じ名前空間にある必要があります。

### パラメータをファイルとしてマウントする
<a name="mount-secrets"></a>

次の手順は、サンプル YAML ファイル ([ExampleSecretProviderClass.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleSecretProviderClass-IRSA.yaml) と [ExampleDeployment.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleDeployment-IRSA.yaml)) を使用してパラメータをファイルとしてマウントする方法を示します。

**Amazon EKS でパラメータをマウントするには**

1. `SecretProviderClass` をポッドに適用します。

   ```
   kubectl apply -f ExampleSecretProviderClass.yaml
   ```

1. ポッドをデプロイします。

   ```
   kubectl apply -f ExampleDeployment.yaml
   ```

1. ASCP はファイルをマウントします。

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

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

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

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

   ```
   kubectl get pods
   ```

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

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

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

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

**`SecretProviderClass` CRD がインストールされていることを確認します。**

  ```
  kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io
  ```

  このコマンドは、`SecretProviderClass` カスタムリソース定義に関する情報を返します。
+ 

**SecretProviderClass オブジェクトが作成されたことを確認します。**

  ```
  kubectl get secretproviderclass SecretProviderClassName -o yaml
  ```