HAQM Web Services ブログ
HAQM EKS Pod Identity は、HAQM EKS クラスター上のアプリケーションの IAM 許可を簡素化します
11月26日より、HAQM EKS Pod Identity を使用して、AWS のサービスにアクセスするアプリケーションを簡素化できます。この拡張機能により、HAQM Elastic Kubernetes Service (HAQM EKS) クラスター内のアプリケーションに必要な IAM 許可を定義できるようになり、クラスター外の AWS のサービスに接続できるようになったため、シームレスで簡単な設定エクスペリエンスを享受できます。
HAQM EKS Pod Identity は、多くの EKS クラスターで直面することが増えた許可の管理に関する課題を解決するのに役立ちます。
HAQM EKS Pod Identity でエクスペリエンスを簡素化する
2019 年、サービスアカウントの IAM ロール (IRSA) を導入しました。IRSA では、IAM ロールを Kubernetes サービスアカウントに関連付けることができます。これにより、ポッドに必要な許可のみを与えることで、最小特権の原則を実装できます。このアプローチは IAM のポッドに優先順位を付け、デベロッパーが AWS のサービスへの最小特権アクセスを可能にするきめ細かな許可でアプリケーションを設定するのに役立ちます。
HAQM EKS Pod Identity により、Kubernetes アイデンティティに AWS 許可を付与する設定と自動化がさらに簡単になりました。クラスター管理者は、アプリケーションをすべての AWS リソースに対して認証するために HAQM EKS サービスと IAM サービスを切り替える必要がなくなります。
HAQM EKS Pod Identity の使用を開始するまでの全体的なワークフローは、次のいくつかの簡単なステップにまとめることができます。
- ステップ 1: アプリケーションに必要な許可を持つ IAM ロールを作成し、その信頼ポリシーでサービスプリンシパルとして
pods.eks.amazonaws.com
を指定します。 - ステップ 2: HAQM EKS コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用して HAQM EKS Pod Identity エージェントアドオンをインストールします。
- ステップ 3: HAQM EKS コンソール、API、または AWS CLI でロールをサービスアカウントに直接マッピングします。
完了すると、そのサービスアカウントを使用する新しいポッドはすべて、IAM 認証情報を受け取るように自動的に設定されます。
使用を開始しましょう
EKS Pod Identity の開始方法をお見せしましょう。この記事のデモでは、HAQM EKS クラスターで実行されているシンプルな API に許可を設定する必要があります。これにより、HAQM Simple Storage Service (HAQM S3) バケット内のファイルのリストが返されます。
まず、アプリケーションを正しく実行できるように、IAM ロールを作成して必要な許可を与える必要があります。このデモの場合、S3 バケットにアクセスするための許可を設定する必要があります。
次に、同じ IAM ロールで、その信頼ポリシーを設定し、プリンシパルを pods.eks.amazonaws.com
に設定する必要があります。このデモで使われている IAM テンプレートは次のとおりです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "pods.eks.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:TagSession"
]
}
]
}
この段階で IAM ロールの準備が整いました。次に、クラスターで HAQM EKS Pod Identity エージェントを設定する必要があります。この記事では、既存の EKS クラスターを使用しています。その方法を知りたい場合は、「HAQM EKS の開始方法」を参照してください。
次に、HAQM EKS ダッシュボードに移動し、EKS クラスターを選択します。
EKS クラスターページで、[Add-ons] (アドオン) タブを選択し、[Get more add-ons] (アドオンをさらに追加) を選択する必要があります。
次に、HAQM EKS Pod Identity エージェントアドオンを追加する必要があります。
次のページでは、必要に応じて追加で設定を行えます。このデモでは、デフォルト設定のままにして、[Next] (次へ) を選択します。
あとは、アドオンの設定を確認して [Create] (作成) を選択するだけです。
数分後、クラスターで HAQM EKS Pod Identity エージェントアドオンがアクティブになります。
クラスターに HAQM EKS Pod Identity にあることを確認したら、IAM ロールを Kubernetes ポッドに関連付ける必要があります。
EKS クラスターの [Access] (アクセス) タブに移動する必要があります。[Pod Identity associations] (Pod Identity の関連付け) セクションで、[Create Pod Identity association] (Pod Identity の関連付けを作成) を選択して IAM ロールを Kubernetes ポッドにマッピングします。
ここでは、最初に作成した IAM ロールを使用します。また、Kubernetes 名前空間とサービスアカウントを定義する必要があります。まだ存在しない場合は、名前空間とサービスアカウントの名前を入力できます。既に存在する場合は、ドロップダウンから選択できます。[Create] (作成) を選択します。
EKS Pod Identity を使用して HAQM EKS で実行されているアプリケーションの IAM 許可を設定するために必要なステップは以上になります。これで、自分の IAM ロールが [Pod Identity associations] (Pod Identity の関連付け) に一覧表示されていることがわかります。
HAQM EKS で実行されている API をテストすると、期待どおりに実行され、S3 バケット内のファイルのリストが返されます。
curl -X http://<API-URL> -H "Accept: application/json"
{
"files": [
"test-file-1.md",
"test-file-2.md"
]
}
HAQM EKS Pod Identity を使用すると、HAQM EKS で実行されているアプリケーションの IAM ロールの管理が簡単になることがわかりました。新しいクラスターを作成するたびにロール信頼ポリシーを更新しなくても、複数の EKS クラスターで IAM ロールを簡単に再利用できます。
EKS Pod Identity を設定するための新しい AWS API
また、AWS CLI を使用してクラスターで HAQM EKS Pod Identity を柔軟に設定することもできます。HAQM EKS Pod Identity には、使用できる新しい API セットが用意されています。
例えば、aws eks create-addon
を使用して HAQM EKS Pod Identity エージェントアドオンをクラスターにインストールできます。AWS CLI コマンドは次のとおりです。
$ aws eks create-addon \
--cluster-name <CLUSTER_NAME> \
--addon-name eks-pod-identity-agent \
--addon-version v1.0.0-eksbuild.1
{
"addon": {
"addonName": "eks-pod-identity-agent",
"clusterName": "<CLUSTER_NAME>",
"status": "CREATING",
"addonVersion": "v1.0.0-eksbuild.1",
"health": {
"issues": []
},
"addonArn": "<ARN>",
"createdAt": 1697734297.597,
"modifiedAt": 1697734297.612,
"tags": {}
}
}
AWS API でできることのもう 1 つの例として、IAM ロールを Kubernetes ポッドにマッピングすることが挙げられます。
$ aws eks create-pod-identity-association \
--cluster-name <CLUSTER_NAME> \
--namespace <NAMESPACE> \
--service-account <SERVICE_ACCOUNT_NAME> \
--role-arn <IAM_ROLE_ARN>
知っておくべきこと
可用性 – HAQM EKS Pod Identity は、HAQM EKS がサポートするすべての AWS リージョンで利用できます。ただし、AWS GovCloud (米国東部)、AWS GovCloud (米国西部)、中国 (北京、Sinnet が運営)、中国 (寧夏、NWCD が運営) は除きます。
料金 – HAQM EKS Pod Identity は無料でご利用いただけます。
サポート対象の HAQM EKS クラスター – HAQM EKS Pod Identity は、HAQM EKS でバージョン 1.24 以降を実行している Kubernetes をサポートしています。詳細については、「EKS Pod Identity のクラスターバージョン」を参照してください。
サポート対象の AWS SDK バージョン – 最新の AWS SDK バージョンを使用するにはアプリケーションを更新する必要があります。AWS SDK のインストールと更新方法については、AWS デベロッパーツールをご覧ください。
今すぐ使用を開始して、「EKS Pod Identities」のドキュメントページにアクセスして、アプリケーションの IAM 管理を簡素化する方法の詳細をご覧ください。
構築がうまくいきますように。
– Donnie
原文はこちらです。