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 :
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
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
Accédez à la page Cloud Run de Google Cloud Console.
Cliquez sur le service.
Cliquez sur l'onglet Sécurité.
Pour activer l'application de l'autorisation binaire sur le service, cliquez sur Activer.
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
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
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
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 console Google Cloud ou de Google Cloud CLI :
Console
Accédez à la page des tâches Cloud Run de Google Cloud Console.
Cliquez sur le job pour en afficher les détails.
Cliquez sur l'onglet Configuration.
Sous Autorisation binaire, sélectionnez une règle dans la liste des stratégies.
Cliquez sur Appliquer pour activer l'application de l'autorisation binaire sur le job.
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 valeurdefault
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 console Google Cloud ou de Google Cloud CLI :
Console
Accéder à la page Cloud Run :
Cliquez sur Créer un service.
Dans le formulaire Créer un service :
- Sélectionnez Cloud Run comme plate-forme de développement.
- Sélectionnez la région dans laquelle vous souhaitez créer votre service.
- Saisissez le nom du service.
- Cliquez sur Suivant pour passer à la page Configurer la première révision du service.
- Sélectionnez Déployer une révision à partir d'une image de conteneur existante.
- Saisissez ou sélectionnez l'image à déployer.
- Développez la section Paramètres avancés.
- Cliquez sur l'onglet Sécurité.
Cochez la case Vérifier le déploiement du conteneur avec l'autorisation binaire.
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.
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 un nouveau job à l'aide de Google Cloud CLI :
gcloud
Créez un job 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 du job 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. Définissez la valeurdefault
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 lequel le job sera exécuté.OPTIONS
: l'une des options disponibles décrites sur la page de création de job de Cloud Run.
Patientez pendant la création de la tâche. Une fois l'opération achevée, la console affiche un message de réussite.
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
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 job Cloud Run.
- IMAGE : URL de votre image de conteneur
- POLICY : défini sur
default
Déployez le nouveau service à l'aide de la commande suivante :
gcloud run services replace service.yaml
Étapes suivantes
- Utilisez le certificateur
built-by-cloud-build
pour déployer uniquement des images créées par Cloud Build (bêta). - Configurez la règle d'autorisation binaire en utilisant la console Google Cloud ou l'outil de ligne de commande.
- Utilisez des attestations pour ne déployer que des images de conteneurs signées.
- Configurez la règle d'autorisation binaire en utilisant la console Google Cloud ou l'outil de ligne de commande.
- Regardez une vidéo expliquant comment utiliser l'autorisation binaire dans Cloud Run afin que seules les compilations approuvées soient déployées.