メインコンテンツまでスキップ

IAM Roles for Service Accounts

開始する前に

このセクションのために環境を準備してください:

~$prepare-environment security/irsa

これにより、ラボ環境に次の変更が適用されます:

  • Amazon DynamoDBテーブルの作成
  • DynamoDBテーブルにアクセスするためのAmazon EKSワークロード用IAMロールの作成
  • Amazon EKSクラスターへのAWS Load Balancer Controllerのインストール

これらの変更を適用するTerraformはこちらで確認できます。

ポッド内のコンテナ内のアプリケーションは、AWS SDKまたはAWS CLIを使用して、AWS Identity and Access Management(IAM)権限を使用してAWSサービスにAPIリクエストを行うことができます。例えば、アプリケーションがS3バケットにファイルをアップロードしたり、DynamoDBテーブルをクエリしたりする必要がある場合があります。そのためには、アプリケーションはAWS認証情報を使ってAWS APIリクエストに署名する必要があります。IAM Roles for Service Accounts(IRSA)は、IAMインスタンスプロファイルがAmazon EC2インスタンスに認証情報を提供するのと同様の方法で、アプリケーションの認証情報を管理する機能を提供します。AWS認証情報をコンテナに作成して配布したり、Amazon EC2インスタンスプロファイルに認証を依存したりする代わりに、KubernetesのServiceAccountにIAMロールを関連付け、ポッドがそのServiceAccountを使用するように設定します。

この章では、サンプルアプリケーションのコンポーネントの1つを再構成して、AWS APIを活用し、適切な認証を提供します。