Activer l'autorisation binaire pour Cloud Run

Ce guide explique comment configurer l'autorisation binaire pour appliquer le déploiement basé sur des règles des services et des tâches Cloud Run.

Avant de commencer

Configurez Cloud Run et activez les API en procédant comme suit :

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activer les API Cloud Run, Artifact Registry, Binary Authorization.

    Activer les API

  5. Installez Google Cloud CLI.
  6. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  7. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  8. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  9. Activer les API Cloud Run, Artifact Registry, Binary Authorization.

    Activer les API

  10. Installez Google Cloud CLI.
  11. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init

Activer l'autorisation binaire sur un service Cloud Run existant

Vous pouvez activer l'application de l'autorisation binaire sur un service existant. Pour activer l'application après l'avoir activée, vous devrez peut-être déployer une révision ou un trafic de service mis à jour.

Vous pouvez activer l'application de l'autorisation binaire sur un service existant à l'aide de la console Google Cloud ou de Google Cloud CLI:

Console

  1. Accédez à la page Cloud Run de Google Cloud Console.

    Accédez à Cloud Run

  2. Cliquez sur le service.

  3. Cliquez sur l'onglet Sécurité.

  4. Pour activer l'application de l'autorisation binaire sur le service, cliquez sur Activer.

  5. Facultatif : Pour configurer la stratégie d'autorisation binaire, cliquez sur Configurer la stratégie.

gcloud

Activez l'autorisation binaire sur le service et déployez-la:

gcloud run services update SERVICE_NAME --binary-authorization=default

Remplacez SERVICE_NAME par le nom que vous souhaitez donner à votre compte de service.

YAML

Vous pouvez télécharger et afficher les configurations de service existantes à l'aide de la commande gcloud run services describe --format export, qui renvoie les résultats nettoyés au format YAML. Vous pouvez ensuite modifier les champs décrits ci-dessous et importer le fichier YAML modifié à l'aide de la commande gcloud run services replace. Veillez à ne modifier que les champs indiqués.

  1. Pour afficher et télécharger la configuration, exécutez la commande suivante :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Mettez à jour l'annotation run.googleapis.com/binary-authorization: comme suit:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      annotations:
        run.googleapis.com/binary-authorization: POLICY
      name: SERVICE
    spec:
      template:

    Remplacez les éléments suivants :

    • SERVICE: nom de votre service Cloud Run
    • POLICY : défini sur default
  3. Remplacez la configuration du service en utilisant la commande suivante :

gcloud run services replace service.yaml

Activer l'autorisation binaire sur une tâche Cloud Run existante

Vous pouvez activer l'application de l'autorisation binaire sur une tâche existante à l'aide de la console Google Cloud ou de Google Cloud CLI:

Console

  1. Accédez à la page des tâches Cloud Run de Google Cloud Console.

    Accédez à Cloud Run

  2. Cliquez sur la tâche pour en afficher les détails.

  3. Cliquez sur l'onglet Configuration.

  4. Sous Autorisation binaire, sélectionnez une règle dans la liste des règles.

  5. Cliquez sur Appliquer pour activer l'application de l'autorisation binaire sur la tâche.

  6. Facultatif : Pour configurer la stratégie d'autorisation binaire, cliquez sur Configurer la stratégie.

gcloud

Activez l'autorisation binaire sur la tâche:

gcloud run jobs update JOB_NAME --binary-authorization=POLICY

Remplacez les éléments suivants :

  • JOB_NAME: nom de votre tâche.
  • POLICY: règle que vous souhaitez appliquer. Utilisez la valeur default pour utiliser la règle par défaut.

Nous vous recommandons d'exiger l'autorisation binaire pour Cloud Run en configurant une règle d'administration. L'autorisation binaire peut être désactivée par les développeurs Cloud Run si la stratégie n'est pas configurée.

Afficher la règle

Pour afficher la règle, cliquez sur Afficher la règle.

Pour en savoir plus, consultez la section Configurer une stratégie d'autorisation binaire.

Échec du déploiement du service ou de la tâche

Si le déploiement de votre service ou de votre tâche échoue parce qu'il ne respecte pas la stratégie d'autorisation binaire, vous pouvez rencontrer une erreur semblable à celle-ci :

Revision REVISION_NAME uses an unauthorized container image.
Container image IMAGE_NAME is not authorized by policy.

L'erreur contient également des informations sur les raisons pour lesquelles l'image a enfreint la règle. Dans ce cas, vous pouvez utiliser le mode "bris de glace" pour contourner l'application des règles et déployer l'image.

Activer l'autorisation binaire sur un nouveau service

Vous pouvez activer l'autorisation binaire sur un nouveau service à l'aide de la console Google Cloud ou de Google Cloud CLI:

Console

  1. Accéder à la page Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur Créer un service.

  3. Dans le formulaire Créer un service :

    1. Sélectionnez Cloud Run comme plate-forme de développement.
    2. Sélectionnez la région dans laquelle vous souhaitez créer votre service.
    3. Saisissez le nom du service.
    4. Cliquez sur Suivant pour passer à la page Configurer la première révision du service.
    5. Sélectionnez Déployer une révision à partir d'une image de conteneur existante.
    6. Saisissez ou sélectionnez l'image à déployer.
    7. Développez la section Paramètres avancés.
    8. Cliquez sur l'onglet Sécurité.
    9. Cochez la case Vérifier le déploiement du conteneur avec l'autorisation binaire.

    10. Facultatif : Pour configurer la stratégie d'autorisation binaire, cliquez sur Configurer la stratégie. Pour en savoir plus sur la configuration des stratégies, consultez la page Configurer une stratégie.

    11. Déployez le service.

gcloud

Activez l'autorisation binaire sur le service et déployez-la:

  gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION

Remplacez les éléments suivants :

  • SERVICE_NAME : nom de votre service.
  • IMAGE_URL : image que vous souhaitez déployer.
  • REGION : région dans laquelle vous souhaitez déployer votre service.

Activer l'autorisation binaire sur une nouvelle tâche

Vous pouvez activer l'autorisation binaire sur une nouvelle tâche à l'aide de Google Cloud CLI:

gcloud

  1. Créez une tâche avec l'autorisation binaire activée:

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL OPTIONS \
      --binary-authorization=POLICY \
      --region=REGION

    Remplacez les éléments suivants :

    • JOB_NAME: nom de la tâche que vous souhaitez créer. Vous pouvez omettre ce paramètre, mais dans ce cas, le nom de la tâche vous sera demandé.
    • POLICY: règle que vous souhaitez appliquer. Utilisez la valeur default pour utiliser la règle par défaut.
    • IMAGE_URL par une référence à l'image de conteneur, par exemple us-docker.pkg.dev/cloudrun/container/job:latest.
    • REGION: région dans laquelle cette tâche sera exécutée.
    • OPTIONS: option disponible sur la page de création de tâche Cloud Run.
  2. Patientez pendant la création de la tâche. Une fois l'opération achevée, la console affiche un message de réussite.

  3. Pour exécuter la tâche, consultez la page Exécuter des tâches ou Exécuter des tâches selon un calendrier.

Lorsque vous créez une tâche, l'agent de service Cloud Run doit pouvoir accéder au conteneur, ce qui est le cas par défaut.

YAML

  1. Créez un fichier service.yaml avec le contenu suivant :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/binary-authorization: POLICY
    spec:
      template:
        spec:
          containers:
          - image: IMAGE

    Remplacez les éléments suivants :

    • SERVICE: nom de votre service Cloud Run
    • IMAGE : URL de votre image de conteneur
    • POLICY : défini sur default
  2. Déployez le nouveau service à l'aide de la commande suivante :

gcloud run services replace service.yaml

Étapes suivantes