ACK は、Alibaba Cloud アカウント、RAM ユーザー、RAM ロールに対して kubeconfig 認証情報を発行します。kubeconfig の管理機能を使用すると、クラスターレベルまたはユーザーレベルで発行された認証情報を確認し、リスクのある kubeconfig ファイルや使用されていない kubeconfig ファイルを失効させて、API サーバーへの不正アクセスを防止できます。
kubeconfig 認証情報は安全に管理してください。漏洩した認証情報は直ちに失効させてください。詳細については、「責任共有モデル」をご参照ください。
きめ細かな RBAC 制御と、RAM ユーザーまたはロールが削除された際の認証情報の自動失効を実現するには、「ACK マネージドクラスターで ack-ram-authenticator を使用した API サーバーの Webhook 認証」をご参照ください。
kubeconfig ファイルは設定されたスケジュールに従って有効期限が切れ、自動的にアクセスが失効します。詳細については、「kubeconfig ファイルで使用されている証明書の有効期限を確認する方法」をご参照ください。
kubeconfig ファイルのステータス
| ステータス | 説明 |
|---|---|
| 未発行 | このクラスターでは、RAM ユーザーまたはロールに kubeconfig ファイルが発行されていません。 |
| 有効 | 発行済みで有効です。kubeconfig ファイルが削除されても RBAC 権限が失効していない場合も、このステータスになります。 |
| 期限切れ | 発行済みですが、有効期限が切れています。 |
| 削除済み | 発行済みで削除されています。kubeconfig 情報と RBAC バインディングの両方が削除されています。 |
kubeconfig ファイルを削除した場合の影響
kubeconfig ファイルを削除する前に、以下の影響を確認してください。
| 影響 | 詳細 |
|---|---|
| 認証情報が永久に無効化される | この kubeconfig ファイルを使用した API サーバーへのアクセスは永久に無効になります。 |
| RBAC バインディングが削除される | RAM ユーザーまたはロールの kubeconfig 情報と RBAC バインディングの両方が削除されます。 |
| 7 日間のアクセスチェックが自動実行される | システムは、過去 7 日間のアクセスを API サーバーの監査ログで確認します。この機能にはクラスター監査が必要です。 |
| 復元が可能 | 削除された kubeconfig ファイルは、kubeconfig ごみ箱から復元できます。 |
kubeconfig ファイルを削除する前に、運用上の依存関係がないことを確認してください。たとえば、退職した従業員の kubeconfig ファイルを個別に削除することで、有効な認証情報を無効にすることを回避できます。
前提条件
次の条件を満たしていることを確認してください。
-
Alibaba Cloud アカウント、または次の権限を持つ RAM ユーザーまたはロール:
-
AliyunCSFullAccess RAM 権限
-
AliyunRAMReadOnlyAccess RAM 権限
-
これらの権限は、クラスターレベル、ユーザーレベル、削除された RAM ユーザー/ロールのクリーンアップなど、すべての kubeconfig 管理操作に適用されます。
特定のユーザーの kubeconfig ファイルの削除
特定のクラスター内の個別の RAM ユーザーまたは RAM ロールの認証情報を確認し、失効させることができます。
-
ACK コンソールにログインします。左側のナビゲーションペインで、[承認]をクリックします。
-
[承認] ページで、[KubeConfig ファイル管理] タブをクリックします。 目的のクラスターを見つけ、[操作] 列の [KubeConfig ファイル管理] をクリックします。 このページには、kubeconfig ファイルまたは履歴 RBAC 権限を持つユーザーが一覧表示されます。 各エントリには次の情報が表示されます。
-
ユーザー情報: ユーザー名、ユーザー ID、アカウントタイプ、アカウントステータス
-
kubeconfig ファイル情報: 有効期限とステータス
削除された RAM ユーザーまたはロールに有効な kubeconfig ファイルがある場合、コンソールに通知が表示されます。
-
-
KubeConfig ファイルが使用されていないことを確認します。対象の RAM ユーザーまたはロールの [アクション] 列で、[KubeConfig ファイルを削除] をクリックします。
クラスター間での RAM ユーザーの kubeconfig ファイルの削除
特定の RAM ユーザーのクラスター間での認証情報を確認し、失効させることができます。一括削除にも対応しています。
-
ACK コンソールにログインします。左側のナビゲーションペインで、[承認]をクリックします。
-
[承認] ページで、[RAM ユーザー] タブをクリックします。対象の RAM ユーザーを見つけ、[アクション] 列の [KubeConfig 管理] をクリックします。[KubeConfig 管理] パネルに、各クラスターの kubeconfig のステータスが表示されます。各項目には以下が表示されます:
-
クラスター情報: クラスター名とクラスター ID
-
kubeconfig ファイル情報: 有効期限、ステータス、7 日間の監査ログ (証明書アクセスログ)
-
-
kubeconfig ファイルが使用されていないことを確認してから、次のいずれかの方法で削除します。
-
単一クラスター: クラスターを見つけ、[アクション] 列の [KubeConfig ファイルの削除] をクリックします。
-
複数のクラスター: 対象のクラスターを選択し、パネルの左下隅にある [KubeConfig ファイルの削除] をクリックします。
-
削除された RAM ユーザーまたはロールの kubeconfig ファイルのクリーンアップ
RAM ユーザーまたはロールが削除された後も、kubeconfig ファイルと RBAC 権限が有効なままになっている場合があります。不正アクセスを防ぐため、残留した認証情報を削除してください。
ACK コンソール
-
ACK コンソールにログインします。左側のナビゲーションペインで、[承認]をクリックします。
-
削除された RAM ユーザーまたはロールに残留 kubeconfig ファイルが存在する場合、[承認] ページに通知が表示されます。
-
メッセージ内の [無効なアカウントに関連付けられた kubeconfig ファイルを管理する] をクリックします。[削除された RAM ユーザー/ロールの KubeConfig ファイルの削除] ページには、アクティブな kubeconfig ファイルまたは RBAC 権限を持つ、削除された RAM ユーザーおよびロールが一覧表示されます。
-
残存する kubeconfig ファイルが使用中でないことを確認します。対象の削除された RAM ユーザーまたはロールについて、[KubeConfig ファイルの削除] をクリックします。
ack-ram-tool
自動化または一括クリーンアップについては、「ack-ram-tool を使用して ACK クラスター上の指定ユーザーの権限を失効させる」をご参照ください。
よくある質問
7 日間のアクセス記録チェックとは何ですか?
[KubeConfig ファイルの削除] をクリックすると、システムは kubeconfig ファイルが過去 7 日間にクラスターにアクセスしたかどうかを確認します。結果は参考用です。削除する前に、必ず kubeconfig ファイルが使用中でないことを確認してください。
このチェックにはクラスター監査が必要です。
7 日間のアクセス記録チェック結果の読み方
| チェック結果 | タイプ | 意味 |
|---|---|---|
| 成功 | アクセス記録が見つからない | 過去 7 日間、kubeconfig ファイルはクラスター API サーバーにアクセスしていません。 |
| 成功 | アクセス記録が見つかった | 過去 7 日間、kubeconfig ファイルは API サーバーにアクセスしています。 |
| 失敗 | アクセス記録のクエリに失敗 | クラスター監査が無効になっています。 |
| 失敗 | アクセス記録のクエリに失敗 | クラスター接続の失敗やネットワークの問題など、その他のエラーが発生しています。 |
kubeconfig ファイルを削除できない場合
次の場合、削除がブロックされます。
-
異常なクラスターステータス: ステータスが [削除失敗]、[削除中]、[削除済み]、または [失敗] のクラスター。
-
異常な kubeconfig ステータス: ステータスが [未発行]、[削除済み]、または [不明] の kubeconfig ファイル。
-
自分自身の kubeconfig ファイル: 自分自身の kubeconfig ファイルは削除できません。
-
Alibaba Cloud アカウントの kubeconfig ファイル: Alibaba Cloud アカウントに発行された kubeconfig ファイルは削除できません。
削除した kubeconfig ファイルを復元できますか?
はい。kubeconfig ごみ箱を使用して、削除された kubeconfig ファイルを復元したり、以前のバージョンにロールバックしたりできます。
セキュリティのベストプラクティス
kubeconfig 認証情報のライフサイクル管理を安全に行うために、次のベストプラクティスに従ってください。
-
[ ] 本番環境クラスターには Webhook 認証を採用してください。 ack-ram-authenticator を使用することで、RAM ユーザーまたはロールが削除された際に kubeconfig ファイルと RBAC 権限を自動的に失効させることができます。
-
[ ] 最小権限の原則を適用してください。 各 RAM ユーザーとロールには、必要最小限の権限のみを付与してください。
-
[ ] 従業員の退職後は速やかにアクセスを失効させてください。 すべてのクラスターで、退職した従業員の kubeconfig ファイルを直ちに削除してください。
-
[ ] kubeconfig ファイルのステータスを定期的に監査します。[KubeConfig ファイル管理] タブを確認して、期限切れ、未使用、または孤立した資格情報を特定します。
-
[ ] 認証情報を機密に保ってください。 AccessKey ペア、トークン、kubeconfig ファイルを不正アクセスから保護してください。
-
[ ] クラスター監査を有効にしてください。 削除前の 7 日間のアクセス記録チェックのために、API サーバーの監査ログを有効にしてください。
不適切な認証情報管理により、RAM ユーザーの AccessKey ペアや kubeconfig ファイルなどの認証情報が漏洩または期限切れになった場合、その結果生じる損失や影響についてはお客様の責任となります。「責任共有モデル」の要件をお読みになり、ご理解ください。
関連ドキュメント
-
クラスターの kubeconfig ファイルの失効 -- 従業員の退職後または認証情報の漏洩が疑われる場合に、kubeconfig ファイルを失効させて再生成します。
-
DescribeClusterUserKubeconfig -- API を使用して kubeconfig ファイルをクエリします。
-
RAM ユーザーまたは RAM ロールへの RBAC 権限の付与 -- kubeconfig 管理に必要な RBAC 管理者権限を設定します。
-
クラスター監査の使用 -- 7 日間のアクセス記録チェックのために監査ログを有効にします。
-
kubeconfig ごみ箱の使用 -- 削除された kubeconfig ファイルを復元します。