Container Service for Kubernetes (ACK) は、クラスター接続のために、ID 資格情報を持つ kubeconfig ファイルを Alibaba Cloud アカウント、Resource Access Management (RAM) ユーザー、または RAM ロールに発行します。 kubeconfig ファイル管理機能を使用すると、発行済みのすべての kubeconfig ステータスをクラスターレベルとユーザーレベルの両方から取得できるため、潜在的なセキュリティリスクのある kubeconfig ファイルの権限を取り消し、承認を取り消すことができます。
kubeconfig ファイルの概要
kubeconfig ファイルには、クライアントが ACK クラスタにアクセスするために使用する資格情報が保存されます。 ACK コンソール を使用するか、DescribeClusterUserKubeconfig API 操作を呼び出して、kubeconfig ファイルをクエリできます。 kubeconfig の機密情報を安全に管理して、データ漏洩などのセキュリティリスクにつながる可能性のある漏洩を防ぎます。
kubeconfig ファイルには有効期限が定義されており、期限切れになるとアクセスが自動的に取り消されます。クエリの詳細については、「kubeconfig ファイルで使用される証明書の有効期限をクエリするにはどうすればよいですか?」をご参照ください。
kubeconfig ファイルのステータス
次の表は、ACK で使用される kubeconfig ファイルのステータスについて説明しています。
ステータス | 説明 |
未発行 | 現在のクラスターの kubeconfig ファイルは、RAM ユーザーまたは RAM ロールに発行されていません。 |
有効 | 現在のクラスターの kubeconfig ファイルは RAM ユーザーまたは RAM ロールに発行されており、kubeconfig ファイルはまだ有効です。 |
RAM ユーザーまたは RAM ロールに発行された kubeconfig ファイルは削除されていますが、ロールベースのアクセス制御 (RBAC) 権限は取り消されていません。 | |
期限切れ | 現在のクラスターの kubeconfig ファイルは RAM ユーザーまたは RAM ロールに発行されていますが、kubeconfig ファイルは期限切れです。 |
削除済み | 現在のクラスターの kubeconfig ファイルは RAM ユーザーまたは RAM ロールに発行されていますが、kubeconfig ファイルは削除されています。 kubeconfig ファイルを削除すると、kubeconfig 情報と RAM ユーザーまたは RAM ロールの RBAC バインディングも削除されます。 |
アクティブな kubeconfig 資格情報の権限を取り消すには、まずその有効性と必要性を確認します。たとえば、アクティブに使用中の有効な資格情報を無効にしないように、パーティション分割された従業員に個別に発行された kubeconfig ファイルを削除します。 ACK マネージドクラスターの API サーバー Webhook 認証に ack-ram-authenticator を使用することをお勧めします。これにより、きめ細かい RBAC 制御が可能になり、関連付けられた RAM ユーザー/ロールが削除されたときに kubeconfig 資格情報が自動的に取り消されます。
kubeconfig ファイルを削除する前に、操作上の依存関係が存在しないことを確認してください。そうでない場合、この資格情報によるクラスター API サーバーへのアクセスは永久に無効になります。
kubeconfig ファイルの維持と管理は、お客様の責任となります。セキュリティコンプライアンスのため、侵害された資格情報は直ちに取り消す必要があります。
kubeconfig ファイル管理
ディメンション | シナリオ | 必要な権限 | 例 |
クラスター | ACK クラスタ内のすべての RAM ユーザーまたは RAM ロールの kubeconfig ファイルを管理します。 |
| |
RAM ユーザーまたは RAM ロール | RAM ユーザーまたは RAM ロールに発行されたすべての kubeconfig ファイルを管理します。 |
| |
削除された RAM ユーザーまたは RAM ロール | 削除された RAM ユーザーまたは RAM ロールの残りの kubeconfig ファイルを管理します。残りの kubeconfig ファイルはまだ有効です。 |
|
クラスター内の kubeconfig ファイルを管理する例
ACK コンソール にログオンします。左側のナビゲーションウィンドウで、[承認] をクリックします。
[承認] ページで、[KubeConfig ファイル管理] タブをクリックします。次に、ターゲットクラスターを見つけ、[アクション] 列の [KubeConfig ファイル管理] をクリックして、kubeconfig ファイルを保持しているユーザーと、取り消された kubeconfig ファイルからの履歴 RBAC 権限を持つユーザーを表示します。
アカウントに、関連付けられた kubeconfig ファイルがアクティブなままになっている削除された RAM ユーザー/ロールが含まれている場合、コンソールに関連する通知が表示されます。
ユーザー情報:ユーザー名、ユーザー ID、アカウントタイプ、アカウントステータス。
kubeconfig ファイル情報:kubeconfig ファイルの有効期限とステータス。
RAM ユーザーまたは RAM ロールが保持している現在のクラスターの kubeconfig ファイルがどのアプリケーションでも使用されていないことを確認したら、RAM ユーザーまたは RAM ロールに対応する [アクション] 列の [KubeConfig ファイルの削除] をクリックして、kubeconfig ファイルを削除します。
重要kubeconfig ファイルを削除する前に、操作上の依存関係が存在しないことを確認してください。そうでない場合、この資格情報によるクラスター API サーバーへのアクセスは永久に無効になります。
kubeconfig ファイルの維持と管理は、お客様の責任となります。セキュリティコンプライアンスのため、侵害された資格情報は直ちに取り消す必要があります。
[KubeConfig ファイルの削除] をクリックすると、システムは API サーバーの監査ログから過去 7 日以内の kubeconfig ファイルのアクセスレコードを自動的にチェックします。この機能を使用するには、API サーバーのクラスタ監査機能が有効になっていることを確認してください。詳細については、「クラスター監査の操作」をご参照ください。
RAM ユーザーまたは RAM ロールに発行された kubeconfig ファイルを管理する例
ACK コンソール にログオンします。左側のナビゲーションウィンドウで、[承認] をクリックします。
[承認] ページで、[RAM ユーザー] タブをクリックし、ターゲット RAM ユーザーを見つけ、 列の [KubeConfig] [管理]アクション をクリックします。
[KubeConfig 管理] パネルには、この RAM ユーザーに関連付けられているすべてのクラスターの kubeconfig ファイルのステータスリストが表示されます。
クラスター情報:クラスターの名前と ID が含まれます。
kubeconfig ファイル情報:kubeconfig ファイルの有効期限とステータス、および 7 日間の監査ログ (具体的には証明書のアクセスログ) が含まれます。
クラスターの kubeconfig ファイルを削除するか、複数のクラスターの kubeconfig ファイルを一度に削除します。 kubeconfig ファイルを削除する前に、kubeconfig ファイルがどのアプリケーションでも使用されていないことを確認してください。
クラスターの kubeconfig ファイルを削除する:kubeconfig ファイルを削除するクラスターを見つけ、[アクション] 列の [KubeConfig ファイルの削除] をクリックします。
複数のクラスターの kubeconfig ファイルを一度に削除する:kubeconfig ファイルを削除するクラスターを選択し、パネルの左下にある [KubeConfig ファイルの削除] をクリックします。
重要kubeconfig ファイルを削除する前に、操作上の依存関係が存在しないことを確認してください。そうでない場合、この資格情報によるクラスター API サーバーへのアクセスは永久に無効になります。
kubeconfig ファイルの維持と管理は、お客様の責任となります。セキュリティコンプライアンスのため、侵害された資格情報は直ちに取り消す必要があります。
[KubeConfig ファイルの削除] をクリックすると、システムは API サーバーの監査ログから過去 7 日以内の kubeconfig ファイルのアクセスレコードを自動的にチェックします。この機能を使用するには、API サーバーのクラスタ監査機能が有効になっていることを確認してください。詳細については、「クラスター監査の操作」をご参照ください。
残りの kubeconfig ファイルを削除する例
ACK コンソール
ACK コンソール にログオンします。左側のナビゲーションウィンドウで、[承認] をクリックします。
削除された RAM ユーザーまたは RAM ロールの残りの kubeconfig ファイルが存在する場合、[承認] ページに次のメッセージが表示されます。

メッセージ内の [無効なアカウントに関連付けられている Kubeconfig ファイルを管理する] をクリックして、[削除された RAM ユーザー/ロールの KubeConfig ファイルの削除] ページに移動します。
このページでは、kubeconfig ファイルと RBAC 権限 がまだ有効になっている、削除された RAM ユーザーまたは RAM ロールを表示できます。
削除する残りの kubeconfig ファイルがどのアプリケーションでも使用されていないことを確認し、削除された RAM ユーザーまたは RAM ロールの右側にある [KubeConfig ファイルの削除] をクリックして、kubeconfig ファイルを削除します。
重要kubeconfig ファイルを削除する前に、操作上の依存関係が存在しないことを確認してください。そうでない場合、この資格情報によるクラスター API サーバーへのアクセスは永久に無効になります。
kubeconfig ファイルの維持と管理は、お客様の責任となります。セキュリティコンプライアンスのため、侵害された資格情報は直ちに取り消す必要があります。
[KubeConfig ファイルの削除] をクリックすると、システムは API サーバーの監査ログから過去 7 日以内の kubeconfig ファイルのアクセスレコードを自動的にチェックします。この機能を使用するには、API サーバーのクラスタ監査機能が有効になっていることを確認してください。詳細については、「クラスター監査の操作」をご参照ください。
ack-ram-tool
ack-ram-tool を使用して kubeconfig ファイルを削除する方法の詳細については、「ack-ram-tool を使用して ACK クラスタの指定されたユーザーの権限を取り消す」をご参照ください。
よくある質問
7 日間のアクセスレコードチェックとは何ですか?
7 日間のアクセスレコードチェック機能は、過去 7 日以内に kubeconfig ファイルが対応するクラスターへのアクセスに使用されたかどうかをチェックします。チェック結果は参考用です。削除する kubeconfig ファイルがどのアプリケーションでも使用されていないことを確認する必要があります。
この機能を使用するには、API サーバーのクラスタ監査機能が有効になっていることを確認してください。詳細については、「クラスター監査の操作」をご参照ください。
7 日間のアクセスレコードチェック結果をどのように理解すればよいですか?
チェック結果 | タイプ | 原因 |
成功 | アクセスレコードが見つかりません。 | 過去 7 日以内に、kubeconfig ファイルを使用してクラスター API サーバーにアクセスしていません。 |
アクセスレコードが見つかりました。 | 過去 7 日以内に、kubeconfig ファイルを使用してクラスターの API サーバーにアクセスしました。 | |
失敗 | アクセスレコードのクエリに失敗しました。 | クラスター監査機能が無効になっているため、7 日間のアクセスレコードチェックに失敗しました。 |
クラスター接続の失敗やネットワークの問題などの他のエラーにより、7 日間のアクセスレコードチェックに失敗しました。 |
どのような場合に kubeconfig ファイルを削除できませんか?
異常なクラスター状態:削除に失敗しました、削除中、削除済み、および失敗状態のクラスターの kubeconfig ファイルは削除しないでください。
異常な kubeconfig ファイルまたは証明書のステータス:未発行、取り消し済み、および不明状態の kubeconfig ファイルは削除しないでください。
自分が保持している kubecofig ファイルは削除できません。
Alibaba Cloud アカウントに発行された kubeconfig ファイルは削除できません。
誤って削除された kubeconfig ファイルを復元したり、kubeconfig ファイルの履歴バージョンを復元したりできますか?
kubeconfig のゴミ箱を使用して、誤って削除された kubeconfig ファイルを復元したり、kubeconfig ファイルの履歴バージョンを復元したりできます。詳細については、「kubeconfig のゴミ箱を使用する」をご参照ください。
kubeconfig ファイル管理のセキュリティに関するベストプラクティスは何ですか?
ACK クラスタへのアクセスに使用するアカウントと資格情報 (RAM ユーザーの AccessKey ペア、トークン、kubeconfig ファイルなど) を管理し、機密性を維持する必要があります。アカウントを管理し、ACK クラスタの権限を付与する際には、最小限の権限の原則に従い、権限を速やかに取り消してください。たとえば、従業員が退職した後、できるだけ早く従業員のアカウントからクラスターアクセス権限を取り消す必要があります。さらに、ACK マネージドクラスターの API サーバー Webhook 認証に ack-ram-authenticator を使用することをお勧めします。これにより、RAM ユーザーまたは RAM ロールの kubeconfig ファイルと RBAC 権限を、RAM ユーザーまたは RAM ロールが削除された後に自動的に取り消すことができます。
不適切な資格情報の管理が原因で、RAM ユーザーの AccessKey ペアや kubeconfig ファイルなどの資格情報の漏洩または期限切れによって発生した損失または結果については、お客様が責任を負います。「共同責任モデル」の要件を読み、理解していることを確認してください。
参考資料
従業員が退職した場合、または kubeconfig ファイルの漏洩が疑われる場合は、kubeconfig ファイルを取り消し、新しい kubeconfig ファイルを生成できます。詳細については、「クラスターの kubeconfig ファイルを取り消す」をご参照ください。