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 Google Cloud compte. 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 sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Installez la Google Cloud CLI.

  6. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  7. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Installez la Google Cloud CLI.

  12. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  13. Pour initialiser la gcloud CLI, 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 Google Cloud console ou de Google Cloud CLI :

Console

  1. Accédez à la page Cloud Run de la 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

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :

    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 job 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 un job existant à l'aide de la Google Cloud console ou de Google Cloud CLI :

Console

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

    Accédez à Cloud Run

  2. Cliquez sur le job 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 stratégies.

  5. Cliquez sur Appliquer pour activer l'application de l'autorisation binaire sur le job.

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

gcloud

Activez l'autorisation binaire sur le job :

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

Remplacez les éléments suivants :

  • JOB_NAME : nom de votre job.
  • POLICY : règle que vous souhaitez appliquer. Définissez 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. Si la règle n'est pas configurée, les développeurs Cloud Run peuvent désactiver l'autorisation binaire

Afficher la règle

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

Pour en savoir plus, consultez la section Configurer une règle d'autorisation binaire.

Échec du déploiement du service ou du job

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 Google Cloud console 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.