Anthos clusters on AWS(GKE on AWS)は、次の認証方法をサポートしています。
- Connect
- OpenID Connect(OIDC)。詳細については、OIDC による認証をご覧ください。
Connect
Google Cloud Console から Connect を使用してログインする場合、Anthos clusters on AWS は Kubernetes サービス アカウントの署名なしトークンを使用できます。詳細については、Cloud Console からクラスタにログインするをご覧ください。
Kubernetes API サーバーと ID トークン
クラスタが認証されると、Cloud SDK の kubectl
CLI を使用してやり取りできます。kubectl
がユーザーに代わって Kubernetes API サーバーを呼び出すと、API サーバーによって OpenID プロバイダの公開証明書を使用したトークンの検証が行われます。次に、API サーバーはトークンを解析して、ユーザーの ID とセキュリティ グループを確認します。
API サーバーは、ユーザーのセキュリティ グループをクラスタのロールベースのアクセス制御(RBAC)ポリシーと比較することで、この特定の呼び出しを承認します。
OIDC
このセクションでは、OAuth 2.0 と OpenID Connect について理解していることを前提にしています。また、OpenID 認証のスコープとクレームについて理解している必要もあります。
概要
OIDC を使用すると、組織内の標準的な手順に従って Kubernetes クラスタへのアクセスを管理し、従業員アカウントの作成、有効化、無効化を行うことが可能です。また、組織のセキュリティ グループを使用して、Kubernetes クラスタやクラスタ内の特定のサービスへのアクセスを構成することもできます。
一般的な OIDC ログインのフローは次のとおりです。
ユーザーは、ユーザー名とパスワードを入力して OpenID プロバイダにログインします。
OpenID プロバイダによりユーザーの ID トークンが署名され、発行されます。
gcloud
ツールは HTTPS リクエストを Kubernetes API サーバーに送信します。アプリケーションは、リクエスト ヘッダーにユーザーの ID トークンを含めます。Kubernetes API サーバーにより、プロバイダの証明書を使用してトークンが検証されます。
企業で Active Directory フェデレーション サービス(ADFS)サーバーが実行されている場合、ADFS サーバーは OpenID プロバイダとして機能します。もう一つの方法は、OpenID プロバイダとしてサードパーティを使用することです。たとえば、Google、Microsoft、Facebook、Twitter はすべて OpenID プロバイダです。
gcloud
ツールでのログイン
gcloud anthos auth login
コマンドを実行して、クラスタを認証します。gcloud
ツールは、Kubernetes API サーバーへのリクエストを認証します。
gcloud
ツールを使用するには、OIDC ID トークンが kubeconfig
ファイルに保存されている必要があります。gcloud anthos create-login-config
を使用して kubeconfig
ファイルにトークンを追加します。Anthos clusters on AWS は、gcloud
ツールを使用し、kubeconfig
ファイル内の ID トークンと他の OIDC 値をリクエストして取得します。