Il existe deux façons de créer un service Cloud Run public :
- Désactivez la vérification IAM du demandeur Cloud Run (recommandé).
- Attribuez le rôle IAM Demandeur Cloud Run au type de membre
allUsers
.
Rôles requis
Pour désactiver ou réactiver la vérification IAM du demandeur sur un service, vous devez disposer des autorisations suivantes :
run.services.create
run.services.update
run.services.setIamPolicy
Ces autorisations sont incluses dans le rôle Administrateur Cloud Run (roles/run.admin
). Consultez la page Rôles IAM Cloud Run pour obtenir la liste complète des rôles et des autorisations associées.
Désactiver la vérification IAM du demandeur Cloud Run
La méthode recommandée pour rendre un service public consiste à désactiver la vérification IAM du demandeur Cloud Run. Cloud Run applique cette vérification par défaut. Utilisez cette solution lorsque le projet est soumis à la contrainte de partage restreint de domaine dans une règle d'administration.
Pour désactiver la vérification :
Console
Dans la console Google Cloud , accédez à la page Cloud Run :
Si vous configurez un nouveau service, cliquez sur Créer un service, puis remplissez la page initiale des paramètres du service selon vos besoins.
Si vous configurez un service existant, cliquez sur celui-ci, puis sur l'onglet Sécurité.
Sélectionnez Autoriser l'accès public.
Cliquez sur Créer ou sur Enregistrer.
gcloud
Pour un nouveau service, utilisez la commande
gcloud run deploy
avec l'option--no-invoker-iam-check
:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
Remplacez
SERVICE_NAME
par le nom du service.Pour un service existant, exécutez la commande
gcloud run services update
avec l'option--no-invoker-iam-check
:gcloud run services update SERVICE_NAME --no-invoker-iam-check
Remplacez SERVICE_NAME
par le nom du service.
YAML
Pour afficher et télécharger la configuration :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour l'annotation
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: true name: SERVICE_NAME
Remplacez SERVICE_NAME par le nom de votre service Cloud Run.
Remplacez la configuration du service en utilisant la commande suivante :
gcloud run services replace service.yaml
Vérifiez que le contrôle est désactivé après le déploiement en accédant au point de terminaison HTTPS du service.
Réactiver la vérification IAM du demandeur Cloud Run
Pour réactiver la vérification :
Console
Dans la console Google Cloud , accédez à la page Cloud Run :
Cliquez sur le service, puis sur Sécurité.
Sélectionnez Exiger une authentification, puis Identity and Access Management (IAM).
Cliquez sur Enregistrer.
gcloud
Mettez à jour le service en transmettant l'indicateur
--invoker-iam-check
:gcloud run services update SERVICE_NAME --invoker-iam-check
Remplacez
SERVICE_NAME
par le nom du service.
YAML
Pour afficher et télécharger la configuration :
gcloud run services describe SERVICE --format export > service.yaml
Mettez à jour l'annotation
run.googleapis.com/invoker-iam-disabled:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: false name: SERVICE_NAME
Remplacez
SERVICE_NAME
par le nom de votre service Cloud Run.
Vérifiez que le contrôle est réactivé après le déploiement en accédant au point de terminaison HTTPS du service.
Configurer une règle d'organisation pour la vérification IAM du demandeur Cloud Run
Si vous êtes administrateur, vous pouvez restreindre la possibilité de désactiver la vérification IAM de l'invocateur à l'aide de la contrainte gérée constraints/run.managed.requireInvokerIam
.
Cette contrainte n'est pas appliquée par défaut.
Attribuez le rôle IAM Demandeur Cloud Run au type de membre allUsers
.
Vous pouvez autoriser l'accès public à un service en attribuant le rôle IAM de demandeur Cloud Run au type de membre allUsers
.
Vous devez disposer de l'autorisation run.services.setIamPolicy
pour configurer l'authentification sur un service Cloud Run. Cette autorisation est incluse dans le rôle Administrateur Cloud Run. Consultez la page Rôles IAM Cloud Run pour obtenir la liste complète des rôles et des autorisations associées.
Console
Pour un service Cloud Run existant :
Dans la console Google Cloud , accédez à la page Cloud Run :
Cochez la case située à gauche du service que vous souhaitez rendre public. Ne cliquez pas sur le service lui-même.
Dans le volet d'informations situé en haut à droite, cliquez sur l'onglet Autorisations. Si le volet d'informations n'est pas visible, vous devrez peut-être cliquer sur Afficher le panneau d'informations, puis sur Autorisations.
Cliquez sur Ajouter un compte principal.
Dans le champ Nouveaux comptes principaux, saisissez la valeur allUsers
.
Dans le menu Sélectionner un rôle, sélectionnez le rôle Demandeur Cloud Run.
Cliquez sur Enregistrer.
Vous serez invité à confirmer que vous souhaitez rendre cette ressource publique. Cliquez sur Autoriser l'accès public pour appliquer la modification aux paramètres IAM du service.
Pour un service que vous créez, créez le service et sélectionnez Autoriser l'accès public dans la section Authentification pour rendre le service disponible publiquement. Pour rendre un service privé, sélectionnez Exiger l'authentification.
gcloud
Pour rendre un service accessible au public, utilisez la commande gcloud run services
pour ajouter le type de membre spécial allUsers
à un service et accordez-lui le rôle roles/run.invoker
:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
Exécutez la commande gcloud run deploy
pour rendre votre service accessible au public lorsque vous le déployez :
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
Créez un fichier nommé policy.yaml
avec le contenu suivant :
bindings:
- members:
- allUsers
role: roles/run.invoker
Autorisez l'accès public pour le SERVICE existant à l'aide de la commande suivante :
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Ajoutez les éléments suivants à une ressourcegoogle_cloud_run_v2_service
dans votre configuration Terraform :Pour mettre à jour la liaison IAM du service pour roles/run.invoker
, ajoutez la ressource suivante qui référence votre service Cloud Run :
Cette liaison ne fait autorité que pour le rôle donné. Les autres liaisons IAM dans la stratégie IAM du service sont conservées.