このページの改善にご協力ください
このユーザーガイドに貢献するには、すべてのページの右側のペインにある「GitHub でこのページを編集する」リンクを選択してください。
クラスターの IAM OIDC プロバイダーを作成するには
クラスターには、OpenID Connect
-
既存の Amazon EKS クラスター。デプロイするには「Amazon EKS の使用を開始する」を参照してください。
-
ご使用のデバイスまたは AWS CloudShell で、バージョン
2.12.3以降、または AWS コマンドラインインターフェイス (AWS CLI) のバージョン1.27.160以降がインストールおよび設定されていること。現在のバージョンを確認するには「aws --version | cut -d / -f2 | cut -d ' ' -f1」を参照してください。yum、apt-get、macOS 用の Homebrew などのパッケージマネージャーは、多くの場合 AWS CLI の最新バージョンより数バージョン古くなっています。最新バージョンをインストールするには「AWS コマンドラインインターフェイスユーザーガイド」の「インストール」および「aws configure を使用したクイック設定」を参照してください。AWS クラウドシェル にインストールされている AWS CLI バージョンも最新バージョンより数バージョン遅れることがあります。更新するには「AWS クラウドシェル ユーザーガイド」の「ホームディレクトリへの AWS CLI のインストール」を参照してください。 -
デバイスまたは AWS クラウドシェル に、
kubectlコマンドラインツールがインストールされていること。バージョンはご使用のクラスターの Kubernetes バージョンと同じか、1 つ前のマイナーバージョン以前、あるいはそれより新しいバージョンが使用できます。例えば、クラスターのバージョンが1.29である場合、kubectlのバージョン1.28、1.29、または1.30が使用できます。kubectlをインストールまたはアップグレードする方法については「kubectl および eksctl のセットアップ」を参照してください。 -
クラスター構成を含む既存の
kubectlconfigファイル。kubectlconfigファイルの作成については、「kubeconfig ファイルを作成して kubectl を EKS クラスターに接続する」を参照してください。
eksctl または AWS Management Console を使用して、クラスターの IAM OIDC プロバイダーを作成できます。
OIDC プロバイダーの作成 (eksctl)
-
デバイスまたは AWS CloudShell にインストールされている
eksctlコマンドラインツールのバージョン0.212.0以降。eksctlをインストールまたはアップグレードするにはeksctlドキュメントの「インストール」を参照してください。 -
クラスターの OIDC 発行者 ID を決定します。
クラスターの OIDC 発行者 ID を取得し、変数に格納します。
<my-cluster>を独自の値に置き換えます。cluster_name=<my-cluster> oidc_id=$(aws eks describe-cluster --name $cluster_name --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5) echo $oidc_id -
クラスターの発行者 ID を持つ IAM OIDC プロバイダーが既にアカウントにあるかどうかを確認します。
aws iam list-open-id-connect-providers | grep $oidc_id | cut -d "/" -f4出力が返された場合は、既にクラスター用の IAM OIDC プロバイダーが存在するため、次の手順をスキップできます。出力が返されない場合はクラスター用の IAM OIDC プロバイダーを作成する必要があります。
-
次のコマンドを使用して、クラスターの IAM OIDC ID プロバイダーを作成します。
eksctl utils associate-iam-oidc-provider --cluster $cluster_name --approve注記
EKS VPC エンドポイントを有効にすると、その VPC 内から EKS OIDC サービスエンドポイントにアクセスできなくなります。そのため、VPC で
eksctlを使用して OIDC プロバイダーを作成するなどの操作は機能せず、タイムアウトします。エラーメッセージの例は次のとおりです。** server cant find oidc.eks.<region-code>.amazonaws.com: NXDOMAIN
このステップを完了するには、VPC の外部、たとえばインターネットに接続された AWS CloudShell 内またはコンピューター上でコマンドを実行します。または、Route 53 Resolver などのスプリットホライズン条件付きリゾルバーを VPC に作成して、OIDC 発行者 URL のために別のリゾルバーを使用し、VPC DNS は使用しないようにすることもできます。CoreDNS での条件付き転送の例については、GitHub の「Amazon EKS feature request
」を参照してください。
OIDC プロバイダーの作成 (AWS コンソール)
-
Amazon EKS コンソール
を開きます。 -
左側ペインで、[クラスター] を選択し、[クラスター] ページでご自身のクラスターの名前を選択します。
-
[概要] タブの [詳細] セクションで、[OpenID Connect プロバイダーの URL] の値を書き留めます。
-
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
左のナビゲーションペインの [アクセス管理] で [ID プロバイダー] を選択します。[プロバイダー] がクラスターの URL と一致するリストに表示されている場合は、クラスターのプロバイダーがすでに存在します。クラスターの URL に一致するプロバイダーがリストにない場合、プロバイダーを作成する必要があります。
-
プロバイダーを作成するには、[プロバイダーを追加] を選択します。
-
[プロバイダータイプ] に、[OpenID Connect] を選択します。
-
[プロバイダー URL] に、クラスター用の OIDC プロバイダー URL 入力します。
-
[対象者] には
sts.amazonaws.comを入力します。 -
(オプション) 任意のタグ、例えば、このプロバイダーのクラスターを特定するためのタグを追加します。
-
[プロバイダーを追加] をクリックします。
次のステップ: IAM ロールを Kubernetes サービスアカウントに割り当てる