プロファイル適用性: レベル2
Google管理のSSL証明書を使用してHTTPSロードバランサーへのトラフィックを暗号化します。
ユーザとKubernetesワークロード間のトラフィックを暗号化することは、ウェブ上で送信されるデータを保護するための基本です。
Google管理のSSL証明書は、ドメイン名のためにプロビジョニング、更新、管理されます。これは、Ingressリソースを使用して作成されたHTTPSロードバランサーにのみ利用可能であり、
type:LoadBalancer
のサービスを使用して作成されたTCP/UDPロードバランサーには利用できません。![]() |
注意デフォルトでは、Ingressリソースが定義されるときにGoogle管理のSSL証明書は作成されません。
|
影響
Google管理のSSL証明書は、自己取得および管理される証明書よりも柔軟性が低いです。管理された証明書は、単一の非ワイルドカードドメインをサポートします。自己管理された証明書は、ワイルドカードおよび複数のサブジェクト代替名
(SAN) をサポートできます。
監査
コマンドラインの使用:
type:LoadBalancer
のサービスを使用して公開されているワークロードがあるかどうかを確認します。kubectl get svc -A -o json | jq '.items[] | select(.spec.type=="LoadBalancer")'
Google管理のSSL証明書を使用するために、これらのサービスの代わりにイングレスを使用することを検討してください。
クラスター内のイングレスに対して、次のコマンドを実行してください。
kubectl get ingress -A -o json | jq .items[] | jq '{name: .metadata.name, annotations: .metadata.annotations, namespace: .metadata.namespace, status: .status}'
上記のコマンドは、イングレスの名前、ネームスペース、アノテーション、およびステータスを返す必要があります。管理された証明書が参照されていることを確認するために、次のアノテーションが存在することを確認してください。
"annotations": { ... "networking.gke.io/managed-certificates": "<example_certificate>" },
完全性を確保するために、次のコマンドを実行して管理対象の証明書リソースが存在することを確認してください。
kubectl get managedcertificates -A
上記のコマンドは、
<example_certificate>
がインバウンドと同じ名前空間内に存在する必要がある管理対象証明書のリストを返します。修復
type:LoadBalancer
のサービスが検出された場合は、サービスをIngressに置き換えることを検討してください。Ingressを構成し、Google管理のSSL証明書を使用するには、これらの手順に従ってください。