Exemples de règles

Cette page contient des exemples de stratégies pour l'autorisation binaire, spécifiées au format YAML. Pour obtenir des instructions sur la configuration des stratégies dans le cadre de l'autorisation binaire, consultez les pages Configurer une stratégie à l'aide de l'outil de ligne de commande gcloud ou Configurer une stratégie à l'aide de Google Cloud Console.

Autoriser tous les déploiements

L'exemple suivant montre comment autoriser le déploiement de toutes les images de conteneurs sans la moindre contrainte.

name: projects/example-project/policy
defaultAdmissionRule:
  evaluationMode: ALWAYS_ALLOW
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Ici, la règle par défaut présente un mode d'évaluation (evaluationMode) défini sur ALWAYS_ALLOW, qui indique à l'autorisation binaire d'autoriser le déploiement de toutes les images de conteneurs. Le mode d'application (enforcementMode) par défaut est défini sur ENFORCED_BLOCK_AND_AUDIT_LOG, mais étant donné que tous les déploiements sont autorisés, cette action n'est jamais effectuée.

Bloquer (presque) tous les déploiements

L'exemple suivant montre comment bloquer le déploiement de toutes les images de conteneurs, tout en autorisant les images système gérées par Google. Ces images de conteneurs sont nécessaires pour permettre un démarrage correct de la plupart des clusters Google Kubernetes Engine (GKE).

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Ici, le mode d'évaluation de la stratégie globale (globalPolicyEvaluationMode) est activé, de sorte que les images requises par GKE ne soient pas bloquées par l'application de la stratégie. La règle par défaut présente un mode d'évaluation (evaluationMode) défini sur ALWAYS_DENY, qui indique à l'autorisation binaire de refuser le déploiement de toutes les images de conteneurs. Le mode d'application (enforcementMode) est défini sur ENFORCED_BLOCK_AND_AUDIT_LOG, ce qui indique à l'autorisation binaire de bloquer le déploiement et de le consigner dans le journal d'audit.

Exiger la signature des certificateurs avant le déploiement

L'exemple suivant montre comment exiger que des certificateurs autorisent une version avant qu'une image de conteneur ne puisse être déployée. Le déploiement est bloqué si tous les certificateurs ne l'ont pas signé.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

Ici, la règle par défaut présente un mode d'évaluation (evaluationMode) défini sur REQUIRE_ATTESTATION, ce qui indique à l'autorisation binaire de n'autoriser que le déploiement des images ayant été autorisées par les certificateurs requis dans requireAttestationsBy.

Autoriser les déploiements en mode de simulation

Le mode de simulation est un mode d'application d'une stratégie qui permet de déployer des images non conformes tout en consignant des informations sur les violations de la stratégie et sur le déploiement dans le journal d'audit. Le mode de simulation vous permet de tester une stratégie dans votre environnement de production avant son entrée en vigueur.

L'exemple suivant montre comment autoriser le déploiement de toutes les images non conformes en mode de simulation.

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: REQUIRE_ATTESTATION
  enforcementMode: DRYRUN_AUDIT_LOG_ONLY
  requireAttestationsBy:
  - projects/example-project/attestors/secure-build

Ici, la règle par défaut présente un mode d'application (enforcementMode) défini sur DRYRUN_AUDIT_LOG_ONLY, ce qui permet le déploiement d'images qui n'ont pas été autorisées par le certificateur spécifié, tout en consignant des informations sur le déploiement non conforme dans le journal d'audit.

Utiliser une règle spécifique à un cluster

Les exemples suivants montrent une règle spécifique à un cluster qui ne permet de déployer que des images de conteneurs autorisées par les certificateurs spécifiés :

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
clusterAdmissionRules:
  us-east1-a.prod-cluster:
    evaluationMode: REQUIRE_ATTESTATION
    enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
    requireAttestationsBy:
    - projects/example-project/attestors/secure-build
    - projects/example-project/attestors/prod-qualified

Ici, la règle spécifique à un cluster ne s'applique qu'aux images de conteneurs déployées dans le cluster us-east1-a.prod-cluster. La règle nécessite une attestation de deux certificateurs avant d'autoriser le déploiement d'une image.

Ajouter des images exclues

L'exemple suivant montre comment ajouter à la liste des images exclues de la stratégie des chemins d'accès supplémentaires vers Container Registry ou un autre registre :

name: projects/example-project/policy
globalPolicyEvaluationMode: ENABLE
admissionWhitelistPatterns:
- namePattern: gcr.io/example-project-1/*
- namePattern: gcr.io/example-project-2/my-app
defaultAdmissionRule:
  evaluationMode: ALWAYS_DENY
  enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG

Ici, les chemins d'accès correspondant à des images supplémentaires exclues sont gcr.io/example-project-1/* et gcr.io/example-project-2/my-app.