Dex を使用して Kubernetes 認証を実装する方法の詳細な説明

Dex を使用して Kubernetes 認証を実装する方法の詳細な説明

Kubernetes は現在最も広く使用されているオープンソースのコンテナ オーケストレーション プラットフォームですが、少なくともネイティブにはユーザーを作成および管理する手段がありません。ただし、複数の認証サービスに接続できるため、これは欠点ではありません。その結果、Dex は Kubernetes で利用できる最高の認証ソリューションの 1 つになりました。

この記事では、Kubernetes 用の Dex について詳しく説明します。 Dex が解決できる問題のいくつか、サードパーティの ID プロバイダーを使用して設定する際の概要、そして Dex がカバーしていない、まだ対処が必要ないくつかの問題について検討します。

Dexとは何ですか?

Dex は、CoreOS, Inc. がリリースしたオープンソースの CNCF サンドボックス プロジェクトおよび認証サービスであり、OpenID Connect (OIDC) を使用して Kubernetes やその他の OIDC 互換サービスをさまざまな ID プロバイダーにリンクします。言い換えれば、Dex は、kubectl、Okta、GitHub、Google、Microsoft、Linkedin などの広く使用されている ID プロバイダー間のブローカーと考えることができます。

Dex は Kubernetes と他の ID プロバイダー間のブリッジとして機能するため、管理者は複数のチームを持つ組織にとって不可欠な、集中的なユーザーおよびグループ管理を実装できます。

さらに、次のセクションで説明するように、Dex はセキュリティを強化し、Kubernetes に最新の便利なログイン エクスペリエンスをもたらすこともできます。

Dex for Kubernetes はどのように機能しますか?

Dex の仕組みを詳しく説明する前に、Kubernetes 認証プロセスの仕組みを理解することが重要です。

Kubernetes クラスターと通信する場合、kubectl​ は実際には API サーバーと対話します。 API サーバーへのすべての HTTP リクエストに対して、認証プラグインはユーザー名、UID、およびグループを検索します。このような属性は、クライアント証明書、認証プロキシ、またはベアラー トークンによって提供できます。ここで Dex が登場し、ID プロバイダーと kubectl クライアント間のブリッジとして機能します。

Dex は OIDC を使用するため、いわゆる「コネクタ」を使用してサードパーティの ID プロバイダーに保存されているユーザー情報にアクセスできます。これにより、Dex はユーザー情報をベアラー トークンの形式で Kubernetes に転送し、認証プロセスを完了できるようになります。これらはすべて、シングル サインオン (SSO) プロセスを通じて実行されるため、ユーザーに対して透過的です。

さらに、次のセクションで説明するように、Dex によって送信される ID トークンには、ユーザー認証に使用できる情報が含まれています。

上記のプロセスは、Kubernetes での認証の仕組みを簡略化したものです。認証プロセスの詳細については、Kubernetes の公式ドキュメントをご覧ください。

(https://kubernetes.io/docs/reference/access-authn-authz/authentication/)

Dex はどのような問題を解決しますか?

すでに述べたように、Dex は管理者が組織の ID サービス プロバイダーを使用してユーザーとグループを管理できるようにすることで Kubernetes の機能を拡張します。

しかし、これは Dex が解決する唯一の問題ではありません。他にどのようなメリットがあるのか​​見てみましょう。

01安全性の向上

Dex は、Kubernetes クラスターのセキュリティをいくつかの方法で向上させます。

ID プロバイダーを通じてユーザーをクラスターにログインさせる安全な方法を提供します。

これにより、複数のユーザーに対して同じ kubeconfig ファイルを使用することによって生じるセキュリティ リスクが排除されます。

監査ログを通じて各ユーザーが実行したアクションを効果的に検出できます。

時間制限のないベアラートークンを作成する慣行を排除します。

RBAC ルール (ゼロ トラスト RBAC アクセス) を使用した効果的なユーザーおよびグループ管理により、認証および承認ポリシーの適用に役立ちます。

02柔軟性

組織ごとに独自の要件がありますが、Dex はほぼすべての ID プロバイダーと連携できるほど柔軟です。これは、Okta、GitHub、GitLab、Microsoft、Linkedin、OpenID Connect、OAuth 2.0、LDAP、SAML 2.0 プロトコルなどを使用するサービスで利用可能なコネクタによって証明されています。 Dex の詳細については、github アドレスをご覧ください。 (https://github.com/dexidp/dex)

03集中認証システムを提供する

小規模なチームにとって、Dex の実装は最適なソリューションではない可能性があります。ただし、さまざまなチームにまたがって数十人のユーザーがいる組織にとって、Dex は非常に強力なツールです。 kubeconfig ファイルを手動で作成、管理、配布する必要がないため、時間の節約とセキュリティの面で大きな利点があります。

さらに、Dex はよりきめ細かいアクセス制御を可能にすることで Kubernetes を補完します。次のセクションで説明するように、Dex は ID トークンの発行を制御し、その有効期間を指定できるようにします。これは、一時的なユーザー アクセスが関係する状況で便利です。

さらに、必要に応じてすべての ID トークンを取り消すこともできます。特定のユーザーまたはグループのアクセス権限を取り消すこともできます。

つまり、Dex を使用すると、効率的で使いやすい集中認証システムを Kubernetes に追加できます。

Dex を使用して Kubernetes で認証を設定する

すでに述べたように、Dex はコネクタを使用して Kubernetes と複数の ID プロバイダーをリンクするポータルとして機能します。

次の図は、シングル サインオン プロセスの概要を示しています。

認証プロセスでは、次の手順が実行されます。

  1. エンドユーザーは Dex へのログイン要求を開始します。これは通常、ユーザーがシングル サインオンを開始する Web アプリケーションまたはポータルを通じて行われます。
  2. Dex はこのリクエストをサードパーティの ID プロバイダー (Active Directory、Google、GitHub、Okta など) に転送します。これを実現するために、Dex は他のユーザー管理システムにクエリを実行するための一連のプロトコルを備えた「コネクタ」を使用します。
  3. これらの「コネクタ」のおかげで、Dex は ID プロバイダーから名前、メール、一意の識別子、グループ、アクセス トークンなどの関連するユーザー情報にアクセスできます。Okta の場合、このデータは ID トークンの形式で提供されます。 Dex のドキュメントによると、「ID トークンは JSON Web トークン (JWT) であり、エンド ユーザーの ID を証明する OAuth2 応答の一部として返されます。」
  4. Dex は、サードパーティのアップストリーム ID プロバイダーからユーザー情報を取得すると、ID プロバイダーの役割を引き受け、署名された ID トークンを kubectl クライアントに発行し、JWT を API サーバーに転送します。
  5. API サーバーは、Kubernetes OpenID Connect Token Authenticator プラグインを使用して ID トークンを消費します。この時点での結果は、ユーザーを認証するか拒否するかになります。ユーザーが正常に認証されると、API サーバーは ID トークン情報を使用して RBAC ルールを適用します。
  6. API サーバーからの応答が kubectl クライアントに送り返されます。
  7. クライアントは kubectl の結果をエンドユーザーに表示します。

LDAP 経由の認証の詳細については、ここにあるドキュメントをお読みください。 Okta などの OpenID Connect プロバイダーで認証する方法の詳細については、ここにあるドキュメントを参照してください。

Dex が解決しない問題は何ですか?

Dex は、Kubernetes のシングル サインオン エクスペリエンスを求める組織に優れたソリューションを提供しますが、特定の ID プロバイダーに関連する制限から免除されるわけではありません。

Dex のドキュメント (https://github.com/dexidp/dex) に示されているように、すべての ID プロバイダーが更新トークン要求をサポートしているわけではありません。つまり、アイデンティティ プロバイダーによっては、ユーザーは前のセクションで説明した認証プロセスを定期的に繰り返す必要があります。

さらに、すべての Dex コネクタが安定しているわけではありません。 Google、Bitbucket Cloud、OAuth 2.0 のコネクタはまだアルファ版です。

留意すべきもう 1 つの点は、Dex は認証ソリューションとしてのみ使用されるということです。環境変数、kube コンテキスト、コストの管理は、手動または他のツールを使用して行う必要があります。

結論は

この記事では、Kubernetes でのログイン エクスペリエンスを向上させるために Dex が有効なソリューションであることを学びました。

OIDC プロバイダーとして、Dex を使用すると、組織は既存の ID プロバイダーを活用して Kubernetes に接続できます。

これは大きな利点です。追加のインフラストラクチャを追加することなく、組織は Kubernetes の集中 ID 管理を実装できるため、時間を節約し、セキュリティ ポリシーの改善に役立ちます。

元記事: https://loft.sh/blog/dex-for-kubernetes-how-does-it-work/

<<:  クラウド パフォーマンスの最適化: クラウド パフォーマンス テストとそのメリットに関する詳細なガイド

>>:  モバイル エッジ コンピューティング: 5G の真の未来

推薦する

企業ウェブサイトのコンテンツ構築が百度のニーズに追いつけない理由の分析

検索エンジンがユーザーエクスペリエンスを推進し、企業にウェブサイトのコンテンツ構築に重点を置くよう指...

ウェブサイト運営について知っておくべきこと

インターネットの台頭と電子商取引の発展に伴い、多くの企業が電子商取引の仲間入りを果たしました。電子商...

取引方法の合理化によりウェブサイトをより高いレベルに導く

インターネットの拡大に​​伴い、今年のタオバオ11フェスティバルも取引高の記録を更新しました。しかし...

ウェブサイトのデザイン

私は小さなSEO担当者です。インターネットからの依頼を受けて、それを最適化するという生活をしています...

ロンドン五輪の放映権争いが終結、ポータルネットワークが生放送権の購入を断念

ロンドン五輪の開幕が近づき、国内のネットメディアの放映権をめぐる一大戦いが終結した。 「私の知る限り...

マイクロソフト、Outlookのメールが中国でハッキングされたと発表

1月21日、海外メディアの報道によると、マイクロソフトは、同社のOutlook電子メールサービスが中...

JD.comは「法律を無視」し、WeChatモーメンツでCPSをプレイしたが、WeChatから処罰された

【Ebrun Power Network News】6月16日、ちょうど「蜜月期」に入ったテンセント...

「王たちの饗宴」からインターネットマーケティングについて語る

最近劇場で人気を博している陸川監督の新作映画「宴会」は、本当に多くの人の注目を集めています。袁創(T...

namecheap: 「Web セキュリティ セール」割引プロモーション、各種 SSL\商用 DNS\検証\VPS など。

Namecheap のネットワーク セキュリティ プロモーションが開始されました。主に、Essent...

ウェブサイト広告システムの概要:権限管理設計と構造設計

さまざまな無料広告システムがあります。それらの共通点は何でしょうか? どのシステムが適切に設計されて...

価値ある企業ウェブサイトの企画はこう行うべきです

月給5,000~50,000のこれらのプロジェクトはあなたの将来です効率を追求する企業では、価値を生...

Weiboから大量のユーザーをコンバージョンするEコマースサイトの4つの特徴

編集者注: この記事の著者は、Tencent Weibo Open Platform の Xu Zh...

Dreamhost 新年プロモーション 40% オフ + 無料ドメイン名

Dreamhost は米国で長年愛されているブランドです。仮想ホストを評価するために何を使用しても、...

アリババクラウドの張一平氏:エッジクラウドフルサイトアクセラレーションネットワークシステムの構築

2021年6月9日、北京でアジア太平洋コンテンツ配信会議およびCDNサミットが開催されました。 Al...