Amazon Elastic Kubernetes Service で AWS Secrets Manager シークレットを使用する - AWS Secrets Manager

Amazon Elastic Kubernetes Service で AWS Secrets Manager シークレットを使用する

AWS Secrets Manager (ASCP) のシークレットを Amazon EKS のポッドにマウントされたファイルとして表示するには、Kubernetes シークレットストア CSI ドライバー向けの AWS シークレットおよび設定プロバイダー (ASCP) を使用します。ASCP は、Amazon EC2 ノードグループを実行する Amazon Elastic Kubernetes Service 1.17 以降で動作します。AWS Fargate ノードグループはサポートされていません。ASCP を使用すると、秘密マネジャー でシークレットを保存および管理し、Amazon EKS で実行されているワークロードからシークレットを取得できます。シークレットに JSON 形式の複数のキー/値ペアが含まれている場合は、Amazon EKS にマウントするキー/値ペアを選択できます。ASCP は JMESPath 構文を使用して、シークレット内のキーと値のペアをクエリします。ASCP はパラメータストアパラメータを使用しても動作します。ASCP には、Amazon EKS による 2 つの認証方法が用意されています。最初のアプローチでは、サービスアカウントの IAM ロール (IRSA) を使用します。2 番目のアプローチでは、Pod Identity を使用します。各アプローチにはそれぞれの利点とユースケースがあります。

サービスアカウントの IAM ロール (IRSA) を使用した ASCP

サービスアカウントの IAM ロール (IRSA) を使用した ASCP では、AWS Secrets Manager のシークレットを Amazon EKS ポッドのファイルとしてマウントできます。このアプローチは、次の場合に適しています。

  • シークレットをポッドのファイルとしてマウントする必要がある。

  • Amazon EC2 ノードグループで Amazon EKS バージョン 1.17 以降を使用している。

  • JSON 形式のシークレットから特定のキーと値のペアを取得する。

詳細については、「AWS Secrets and Configuration Provider CSI をサービスアカウントの IAM ロール (IRSA) と使用する 」を参照してください。

Pod Identity を使用した ASCP

Pod Identity を使用した ASCP の方法では、セキュリティが強化され、Amazon EKS のシークレットにアクセスするための設定が簡素化されます。このアプローチは、次の場合に役立ちます。

  • ポッドレベルでより詳細にアクセス許可を管理する必要がある。

  • Amazon EKS バージョン 1.24 以降を使用している。

  • パフォーマンスとスケーラビリティを向上させる必要がある。

詳細については、「Amazon EKS 用に AWS Secrets and Configuration Provider CSI を Pod Identity と使用する」を参照してください。

適切なアプローチの選択

IRSA を使用した ASCP と Pod Identity を使用した ASCP のどちらを選択するかを決めるときは、次の要素を考慮します。

  • Amazon EKSversion: Pod Identity には Amazon EKS 1.24 以降が必要ですが、CSI ドライバーは Amazon EKS 1.17 以降で動作します。

  • セキュリティ要件: Pod Identity は、ポッドレベルでのより詳細な制御を提供します。

  • パフォーマンス: 通常、大規模な環境では Pod Identity の方がパフォーマンスが向上します。

  • 複雑さ: Pod Identity には個別のサービスアカウントが必要ないため、設定が簡素化されます。

特定の要件と Amazon EKS 環境に最適な方法を選択します。