説明
ユーザー名とパスワードを使う GKE Basic 認証は、GKE 1.19 以降ではサポートされていません。古いクラスターの固定認証情報や、それを使う自動化が残っている場合は、現在の認証方法に移行する必要があります。
想定される影響
共有認証情報が漏えいすると、その権限でクラスターにアクセスされるおそれがあります。古い認証への依存は利用者の追跡や認証情報の交換を難しくし、管理処理の失敗にもつながります。
対処方法
master_auth.username と master_auth.password のレガシー値を削除してください。Google Cloud の OAuth トークンによるアクセスに移行し、IAM と Kubernetes RBAC の権限を最小限にしてください。自動化や運用手順からも古い認証情報を削除してください。
例
過去の Basic 認証フィールドを比較する抜粋であり、現在の GKE で Basic 認証を有効にする方法ではありません。プロジェクトと、保護されたサービスアカウントの JSON ファイルのパスを環境に合わせて指定してください。
変更前
yaml
- name: create a cluster4
google.cloud.gcp_container_cluster:
name: my-cluster4
initial_node_count: 2
master_auth:
username: cluster_admin
password: ""
node_config:
machine_type: n1-standard-4
disk_size_gb: 500
location: us-central1-a
project: "{{ gcp_project }}"
auth_kind: serviceaccount
service_account_file: "{{ gcp_service_account_file }}"
state: present
- name: create a cluster5
google.cloud.gcp_container_cluster:
name: my-cluster5
initial_node_count: 2
master_auth:
username: ""
password: my-secret-password
node_config:
machine_type: n1-standard-4
disk_size_gb: 500
location: us-central1-a
project: "{{ gcp_project }}"
auth_kind: serviceaccount
service_account_file: "{{ gcp_service_account_file }}"
state: present
最初のタスクはユーザー名を指定しています。2 番目のようにユーザー名なしでパスワードだけを指定する構成は無効です。どちらも現在の GKE で推奨されるログイン方法ではありません。
変更後
yaml
- name: create a cluster
google.cloud.gcp_container_cluster:
name: my-cluster
initial_node_count: 2
master_auth:
username: ""
password: ""
node_config:
machine_type: n1-standard-4
disk_size_gb: 500
location: us-central1-a
project: "{{ gcp_project }}"
auth_kind: serviceaccount
service_account_file: "{{ gcp_service_account_file }}"
state: present
両方を空にすると、レガシー Basic 認証情報を使用しません。この設定は現在の認証を無効にしたり、IAM 権限を付与したりするものではありません。