GKEの限定公開クラスタに対するkubernetes APIのアクセス制御とCloudShellからのアクセス
#GKE
限定公開クラスタを使っている前提で以降の話を進めます
要点は https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#access_to_the_cluster_endpoints にまとまっています。
まとめの表はこちら
table:table
No マスター承認済みネットワーク 外部 IP アドレスを使用したマスターへのアクセス CloudShell 備考
1 off on つながる
2 on on つながらない
3 on off つながらない
3 off off これは設定できない
1. マスター承認済みネットワークを設定せずに外部IPアドレスを使用したマスターへのアクセスを許可する
この場合マスターノードにはどこからでもアクセス可能なので、認証さえ通ればどこからでもkubernetesのAPIを叩ける
なので、CloudShellからもアクセスできる
2. マスター承認済みネットワークを設定しつつ外部IPアドレスを使用したマスターへのアクセスを許可する
マスター承認済みネットワーク からであればkubernetes APIを叩くことができる。
外部IPアドレスを使用したマスターへのアクセス を許可しているので、マスター承認済みネットワークにはグローバルのIPアドレスを登録できる。
例えば、会社内からのkubernetes APIを叩きたい場合(社内環境からkubectl execしたいとか)の場合にはこのパターンになる。
この場合、CloudShellからのアクセスはできない。
外部のIPアドレスを マスター承認済みネットワークを登録しておけば、ローカルからkubectlも叩ける
3. マスター承認済みネットワークを設定しつつ外部IPアドレスを使用したマスターへのアクセス は許可しない
この場合、VPC内部からのアクセスのうち、マスター承認済みネットワークで設定したネットワークからしかアクセスできなくなる。
外部からのアクセスが一切遮断されるので一番安全かなと