Contrôle des accès avec IAM

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Par défaut, seuls les propriétaires et les éditeurs de projets peuvent créer, mettre à jour, supprimer ou appeler des services, et seuls les propriétaires de projets et les administrateurs Cloud Run peuvent modifier les stratégies IAM (Identity and Access Management), par exemple pour rendre un service public. Cliquez sur ce lien pour en savoir plus sur les rôles IAM Cloud Run.

Pour permettre à d'autres comptes principaux ou groupes d'effectuer ces actions, vous pouvez accorder des rôles à différents comptes principaux à l'aide d'IAM.

Contrôler l'accès à un service individuel

Si vous souhaitez contrôler l'accès service par service, vous pouvez accorder des autorisations IAM par service.

Rendre un service public

Vous devez disposer de l'autorisation run.services.setIamPolicy pour configurer l'authentification sur un service Cloud Run. Cette autorisation est incluse dans les rôles Propriétaire et 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 (UI)

Pour un service Cloud Run existant :

  1. Accédez à Google Cloud Console :

    Accéder à Google Cloud Console

  2. Cochez la case située à gauche du service que vous souhaitez rendre public. (Ne cliquez pas sur le service lui-même.)

  3. Dans le volet d'informations situé dans le coin 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.

  4. Cliquez sur Ajouter un compte principal.

Dans la zone de texte Nouveaux comptes principaux, saisissez la valeur allUsers.

  1. Dans le menu déroulant Rôle, sélectionnez le rôle Demandeur Cloud Run.

  2. Cliquez sur Save (Enregistrer).

  3. Vous êtes 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 nouveau service que vous créez, créez le service en veillant à sélectionner Autoriser les appels non authentifiés dans l'onglet Authentification pour rendre le service disponible publiquement. Sélectionnez Exiger l'authentification pour rendre le service privé.

gcloud

Vous pouvez rendre un service accessible au public en ajoutant le type de membre allUsers spécial à ce service et en lui attribuant le rôle roles/run.invoker :

  gcloud run services add-iam-policy-binding [SERVICE_NAME] \
    --member="allUsers" \
    --role="roles/run.invoker"

En outre, lorsque vous déployez votre service à l'aide de la commande gcloud run deploy, vous pouvez spécifier si vous souhaitez rendre votre service accessible au public :

gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated

Terraform

Pour créer un service Cloud Run, ajoutez les éléments suivants à votre fichier main.tf existant :

resource "google_cloud_run_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"

  template {
    spec {
      containers {
        image = "gcr.io/cloudrun/hello"
      }
    }
  }

  traffic {
    percent         = 100
    latest_revision = true
  }
}

Pour mettre à jour la liaison IAM du service pour roles/run.invoker, ajoutez la ressource suivante qui référence votre service Cloud Run :

resource "google_cloud_run_service_iam_binding" "default" {
  location = google_cloud_run_service.default.location
  service  = google_cloud_run_service.default.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
}

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.

Partage restreint de domaine

Si le projet est soumis à la contrainte de partage restreint de domaine dans une règle d'administration, vous ne pouvez pas créer de services publics. Google recommande de créer tous les projets dans un dossier non soumis à cette restriction, et de l'éliminer des projets existants en restaurant la contrainte par défaut sur le projet.

Ajouter des comptes principaux

Console (UI)

  1. Accédez à Google Cloud Console :

    Accéder à Google Cloud Console

  2. Cochez la case située à gauche du service auquel vous souhaitez ajouter des comptes principaux. (Ne cliquez pas sur le service lui-même.)

  3. Dans le volet d'informations situé dans le coin 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.

  4. Cliquez sur Ajouter un compte principal.

  5. Dans la zone de texte Nouveaux comptes principaux, saisissez une ou plusieurs identités nécessitant un accès au service.

  6. Dans le menu déroulant Rôle, sélectionnez un ou plusieurs rôles. Les rôles sélectionnés apparaissent dans le volet et sont accompagnés d'une brève description des autorisations attribuées.

  7. Cliquez sur Save (Enregistrer).

gcloud

Exécutez la commande gcloud run services add-iam-policy-binding :

gcloud run services add-iam-policy-binding SERVICE_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

SERVICE_NAME est le nom du service, MEMBER_TYPE est le type de compte principal (par exemple, user:email@domain.com) et ROLE est le rôle.

Pour obtenir la liste des valeurs acceptées pour MEMBER_TYPE, consultez la section sur les concepts de Cloud IAM. Pour obtenir la liste des valeurs acceptées pour ROLE, consultez la page sur les rôles IAM Cloud Run.

Supprimer des comptes principaux d'un rôle

Console (UI)

  1. Accédez à Google Cloud Console :

    Accéder à Google Cloud Console

  2. Cochez la case située à gauche du service pour lequel vous souhaitez supprimer les comptes principaux. (Ne cliquez pas sur le service lui-même.)

  3. Dans le volet d'informations situé dans le coin 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.

  4. Saisissez le compte principal que vous souhaitez supprimer dans le filtre de la liste des rôles, ce qui affiche tous les rôles attribués à ce compte principal.

  5. Au niveau du rôle, cliquez sur la corbeille en regard du compte principal pour supprimer le rôle du compte principal.

  6. Dans la boîte de dialogue de confirmation, vous avez la possibilité de supprimer ce compte principal de tous les rôles du service. Cliquez sur Supprimer pour supprimer le compte principal du rôle.

gcloud

Exécutez la commande gcloud run services remove-iam-policy-binding :

  gcloud run services remove-iam-policy-binding SERVICE_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

SERVICE_NAME est le nom du service, MEMBER_TYPE est le type de compte principal (par exemple, user:email@domain.com) et ROLE est le rôle.

Pour obtenir la liste des valeurs acceptées pour MEMBER_TYPE, consultez la section sur les concepts de Cloud IAM. Pour obtenir la liste des valeurs acceptées pour ROLE, consultez la page sur les rôles IAM Cloud Run.

Ajouter ou supprimer des comptes principaux de manière groupée

Console (UI)

  1. Accédez à Google Cloud Console :

    Accéder à Google Cloud Console

  2. Cochez la case située à gauche du service pour lequel vous souhaitez ajouter des comptes principaux ou en supprimer. (Ne cliquez pas sur le service lui-même.)

  3. Sélectionnez le service pour lequel vous souhaitez ajouter des comptes principaux ou en supprimer.

  4. Dans le volet d'informations situé dans le coin 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.

Pour ajouter des comptes principaux :

  1. Cliquez sur Ajouter un compte principal.

  2. Dans la zone de texte Nouveaux comptes principaux, saisissez une ou plusieurs identités nécessitant un accès au service.

  3. Dans le menu déroulant Rôle, sélectionnez un ou plusieurs rôles. Les rôles sélectionnés apparaissent dans le volet et sont accompagnés d'une brève description des autorisations attribuées.

  4. Cliquez sur Save (Enregistrer).

Pour supprimer des comptes principaux :

  1. Saisissez le compte principal que vous souhaitez supprimer dans le filtre de la liste des rôles, ce qui affiche tous les rôles attribués à ce compte principal.

  2. Au niveau du rôle, cliquez sur la corbeille en regard du compte principal pour supprimer le rôle du compte principal.

  3. Dans la boîte de dialogue de confirmation, vous avez la possibilité de supprimer ce compte principal de tous les rôles du service. Cliquez sur Supprimer pour supprimer le compte principal du rôle.

gcloud

Créez une stratégie IAM :

cat <<EOF > policy.json
{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        MEMBER_TYPE
      ]
    }
  ]
}
EOF

Utilisez la commande gcloud run services set-iam-policy :

gcloud run services set-iam-policy SERVICE_NAME policy.json

Pour obtenir la liste des valeurs acceptées pour MEMBER_TYPE, consultez la section sur les concepts de Cloud IAM. Pour obtenir la liste des valeurs acceptées pour ROLE, consultez la page sur les rôles IAM Cloud Run.

Afficher les comptes principaux

Console (UI)

  1. Accédez à Google Cloud Console :

    Accéder à Google Cloud Console

  2. Cochez la case située à gauche du service pour lequel vous souhaitez afficher les comptes principaux et les rôles. (Ne cliquez pas sur le service lui-même.)

  3. Sélectionnez le service pour lequel vous souhaitez afficher les comptes principaux et les rôles.

  4. Dans le volet d'informations situé dans le coin 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.

  5. La liste des rôles et des comptes principaux s'affiche, regroupée par rôle attribué.

gcloud

Exécutez la commande gcloud run services get-iam-policy :

gcloud run services get-iam-policy SERVICE_NAME

Contrôler l'accès à tous les services d'un projet

Si vous souhaitez attribuer des rôles à des comptes principaux sur tous les services d'un projet, vous pouvez attribuer des rôles IAM au niveau du projet.

Console (UI)

  1. Accédez à Google Cloud Console :

    Accéder à Google Cloud Console

  2. Recherchez le compte principal auquel vous souhaitez attribuer un rôle à l'échelle du projet.

  3. Cliquez sur l'icône en forme de crayon située à droite de la ligne du compte principal.

  4. Cliquez sur Ajouter un autre rôle et sélectionnez le rôle souhaité.

  5. Cliquez sur Save (Enregistrer).

gcloud

Exécutez la commande gcloud projects add-iam-policy-binding :

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=MEMBER_TYPE \
  --role=ROLE

MEMBER_TYPE correspond au type de compte principal (par exemple, user:email@domain.com) et ROLE au rôle (par exemple, roles/run.admin).

Les types de comptes principaux allUsers et allAuthenticatedUsers ne peuvent pas être appliqués au niveau du projet. Ils doivent être ajoutés à chaque service individuellement.

Étapes suivantes

Découvrez comment authentifier les développeurs, les services et les utilisateurs en toute sécurité pour accéder aux services que vous venez de sécuriser.