IAMサービスアカウントの ロール - Amazon EKS

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

IAMサービスアカウントの ロール

IAM ロールを Kubernetes サービスアカウントに関連付けることができます。このサービスアカウントは、そのサービスアカウントを使用するポッドのコンテナ AWS にアクセス許可を提供できます。この機能を使用すると、そのノードのポッドが を呼び出すAmazon EKS ノードIAMロールことができるように、 に拡張されたアクセス許可を提供する必要がなくなりますAWSAPIs。

アプリケーションは AWS 認証情報で AWS API リクエストに署名する必要があります。この機能により、Amazon EC2 インスタンスプロファイルで Amazon EC2 インスタンスに認証情報を提供するのと類似した方法で、アプリケーションで使用される認証情報を管理する方法が提供されます。AWS 認証情報を作成してコンテナに配布したり、Amazon EC2 インスタンスのロールを使用したりする代わりに、IAM ロールを Kubernetes サービスアカウントと関連付けることができます。ポッドのコンテナにあるアプリケーションは、AWS SDK または AWS CLI を使用して権限付与された AWS のサービスへの API リクエストを実行できます。

重要

IAM ロールを Kubernetes サービスアカウントに割り当てた場合でも、ポッドから IMDS へのアクセスをブロックしない限りAmazon EKS ノードIAMロール、ポッドには に割り当てられたアクセス許可も残ります。詳細については、「 」を参照してください。IMDS および Amazon EC2 インスタンスプロファイルの認証情報へのアクセスの制限.

サービスアカウントの IAM ロール機能には、次の利点があります。

  • 最小権限 サービスアカウントの 機能用の — ロールIAMを使用することで、ノードIAMロールに拡張されたアクセス許可を提供する必要がなくなり、そのノードのポッドが を呼び出すことができますAWSAPIs。 IAM アクセス許可の範囲をサービスアカウントに設定でき、そのサービスアカウントを使用するポッドのみがそれらのアクセス許可にアクセスできます。また、この機能により、kiamkube2iam. などのサードパーティーのソリューションが不要になります。

  • 認証情報の分離 — コンテナは、そのコンテナが属するサービスアカウントに関連付けられている IAM ロールの認証情報のみを取得できます。コンテナは、別のポッドに属する別のコンテナを対象とした認証情報にアクセスすることはできません。

  • 監査性— 遡及的な監査を確実に行うため、CloudTrail を介してアクセスとイベントのロギングを利用できます。

サービスアカウントで 3 つのステップで AWS リソースにアクセスできるようにする

  1. IAM クラスターの OIDC プロバイダーを作成する – クラスターに対して 1 回のみ実行する必要があります。

  2. IAM ロールを作成し、 サービスアカウントに必要なIAMアクセス許可を持つ ポリシーをアタッチ–する ポッドに必要なアクセス許可の一意のコレクションごとに個別のロールを作成することをお勧めします。

  3. IAM ロールをサービスアカウントに関連付ける – リソースへのアクセスが必要な Kubernetes サービスアカウントごとに、このタスクAWSを完了します。