ビュー:
プロファイル適用性: レベル2
Binary Authorizationは、暗号的に署名された検証可能なメタデータを持つイメージのみをクラスターに許可することで、サプライチェーンのセキュリティを保護します。
バイナリ認証は、Google Container Registry (GCR) または他のコンテナイメージレジストリから GKE にデプロイされるイメージのソフトウェアサプライチェーンセキュリティを提供します。
Binary Authorizationは、開発プロセス中に信頼できる機関によってイメージに署名されることを要求します。これらの署名は、デプロイメント時に検証されます。検証を強制することで、検証済みのイメージのみがビルドおよびリリースプロセスに統合されることを保証し、コンテナ環境をより厳密に管理することができます。
注意
注意
デフォルトでは、バイナリ認証は無効になっています。

影響

ポリシーを定義する際には、コンテナイメージの展開が誤って拒否されないよう注意が必要です。ポリシーによっては、クラスター内で実行中の既存のコンテナイメージに対する証明書を作成する必要があり、それらのイメージが再展開されるか、ポッドの入れ替えの一環としてプルされる前に作成する必要があります。
キーシステムイメージの展開が拒否されるのを防ぐために、Googleが提供するグローバルポリシーを使用し、Google提供のシステムイメージのリストをさらなるポリシー評価から免除するグローバルポリシー評価モードの使用を検討してください。

監査

Google Cloud Consoleを使用する:
GKEクラスターでバイナリ認証が有効になっていることを確認するには:
  1. Kubernetes Engine のウェブサイトにアクセスしてください。
  2. Binary Authorizationが無効になっているクラスターを選択してください。
  3. 詳細ペインのセキュリティセクションで、バイナリ認証が有効になっていることを確認します。その後、ポリシーの内容を評価します。
  4. Binary Authorizationに移動します。
  5. ポリシーが定義されていることを確認し、プロジェクトのデフォルトルールがすべてのイメージを許可するように設定されていないことを確認してください。
コマンドラインの使用:
GKEクラスターでバイナリ認証が有効になっていることを確認するには:
gcloud container clusters describe <cluster_name> --zone <compute_zone> 
--format json | jq .binaryAuthorization
バイナリ認証が有効になっている場合、上記のコマンド出力は次のようになります。
{ 
    "enabled": true 
}
次に、ポリシーの内容を評価します。
gcloud container binauthz policy export > current-policy.yaml
現在のポリシーがすべてのイメージを許可するように設定されていないことを確認します (評価モード: ALWAYS_ALLOW ):
cat current-policy.yaml 
... 
defaultAdmissionRule: 
  evaluationMode: ALWAYS_ALLOW

修復

Google Cloud Consoleを使用する:
  1. Binary Authorizationに移動します。
  2. バイナリ認証APIを有効にします (無効の場合)。
  3. クラスターで使用する適切なポリシーを作成してください。ガイダンスについてはGoogleポリシーレファレンスを参照してください。
  4. Kubernetes Engine のウェブサイトにアクセスしてください。
  5. Binary Authorizationが無効になっているクラスターを選択してください。
  6. 詳細ペインのセキュリティセクション内で、編集バイナリ認証という名前の鉛筆アイコンをクリックします。
  7. バイナリ認証を有効にするの横のチェックボックスをオンにします。
  8. ポリシーを適用を選択し、使用するポリシーのディレクトリを指定してください。
  9. [SAVE CHANGES]をクリックします。
コマンドラインの使用:
クラスターを更新してバイナリ認証を有効にする:
gcloud container cluster update <cluster_name> --zone <compute_zone> 
--binauthz-evaluation-mode=<evaluation_mode> 

Example: 
gcloud container clusters update $CLUSTER_NAME --zone $COMPUTE_ZONE 
--binauthz-evaluation-mode=PROJECT_SINGLETON_POLICY_ENFORCE
評価モードの詳細についてはGoogleクラスタを参照してください。
Binary Authorization Policy Referenceを参考にして、バイナリ認証ポリシーを作成します。
ポリシーファイルをバイナリ認証にインポートする:
gcloud container binauthz policy import <yaml_policy>