Conditions IAM pour un accès précis

Cette page explique comment limiter l'accès à vos connexions à l'aide des conditions IAM.

Une condition IAM vous permet de contrôler avec précision vos ressources Integration Connectors. Par défaut, un utilisateur ou un rôle Integration Connectors peut effectuer toutes les opérations compatibles sur une connexion. Avec les conditions IAM, vous pouvez limiter l'accès d'un utilisateur ou d'un rôle spécifique pour qu'il ne puisse effectuer que certaines opérations sur une connexion. Par exemple, vous pouvez limiter l'accès d'un utilisateur de sorte qu'il ne puisse modifier que les connexions dont le nom commence par test-connection et qu'il ne dispose d'aucune autre autorisation sur les connexions. Ainsi, il ne pourra pas s'abonner aux événements ni afficher les métadonnées du schéma.

Avant de commencer

Integration Connectors utilise Identity and Access Management (IAM) de Google Cloud pour gérer les rôles et les autorisations des ressources Integration Connectors. Par conséquent, avant de spécifier ou de modifier des conditions dans IAM pour vos ressources Integration Connectors, familiarisez-vous avec les concepts IAM suivants :

Ajouter des conditions IAM

Pour ajouter une condition IAM à une ressource Integration Connectors, vous avez besoin des informations suivantes :

  • URI de ressource nommé : chaque ressource dans Integration Connectors possède un URI de ressource unique. Par exemple, l'URI de la ressource de connexion est projects/PROJECT_ID/locations/CONNECTION_LOCATION/connections/{connection_name}. Pour obtenir la liste complète de tous les URI disponibles, consultez Ressources REST Integration Connectors. Pour contrôler les autorisations d'accès à une ressource de façon précise, vous devez nommer votre ressource selon une convention d'attribution de noms. En fonction de vos besoins, vous pouvez choisir la convention d'attribution de noms que vous souhaitez utiliser. Par exemple, vous pouvez ajouter le préfixe marketing- pour toutes les connexions appartenant à l'équipe marketing. Dans cet exemple, l'URI de ressource pour les connexions de l'équipe marketing commence par projects/PROJECT_ID/locations/CONNECTION_LOCATION/connections/marketing-.
  • Autorisations de niveau parent uniquement : vérifiez si une ressource ou l'une de ses ressources enfants nécessite l'autorisation de niveau parent uniquement. Pour en savoir plus, consultez Autorisations de niveau parent uniquement.
  • Type de ressource : vous pouvez affiner davantage le niveau d'accès aux ressources, en appliquant un filtre par type de ressource dans la condition. Integration Connectors accepte des conditions pour les ressources suivantes :
    Nom de la ressource Type de ressource
    Connection connectors.googleapis.com/Connection
    ManagedZone connectors.googleapis.com/ManagedZone
    EndpointAttachment connectors.googleapis.com/EndpointAttachment
    EventSubscription connectors.googleapis.com/EventSubscription
    ConnectionSchemaMetadata connectors.googleapis.com/ConnectionSchemaMetadata

Exemples

Le tableau suivant présente des exemples de conditions de ressources que vous pouvez appliquer à un utilisateur ou à un rôle Integration Connectors.

Condition de ressource IAM Description
(resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/Connection")
|| (resource.type != "connectors.googleapis.com/Connection"
&& resource.name.extract("/operations/{operation}") == "")
Un utilisateur ou un rôle auquel vous appliquez cette condition ne peut effectuer que les opérations suivantes :
  • Lister toutes les connexions et les opérations de longue durée.
  • Effectuer des opérations Get, Create, Update et Delete sur les connexions dont le nom commence par marketing-

L'utilisateur ne peut pas afficher, annuler ni supprimer des opérations de longue durée individuelles. Pour permettre à l'utilisateur de suivre la progression des opérations, consultez Autoriser les utilisateurs restreints à suivre les opérations.

(resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/Connection") ||
(resource.name.startsWith ("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-") && resource.type == "connectors.googleapis.com/ConnectionSchemaMetadata")
|| (resource.type != "connectors.googleapis.com/Connection"
&& resource.type != "connectors.googleapis.com/ConnectionSchemaMetadata"
&& resource.name.extract("/operations/{operation}") == "")
Un utilisateur ou un rôle auquel vous appliquez cette condition ne peut effectuer que les opérations suivantes :
  • Répertorier toutes les connexions et les opérations de longue durée.
  • Effectuer des opérations Get, Create, Update et Delete uniquement pour les connexions dont le nom commence par marketing-
  • Obtenir les métadonnées du schéma de connexion uniquement pour les connexions dont le nom commence par marketing-

L'utilisateur ne peut pas afficher, annuler ni supprimer des opérations de longue durée individuelles.

Autoriser les utilisateurs restreints à suivre les opérations

Lorsque les conditions des exemples précédents excluent des opérations, un utilisateur restreint peut toujours créer, mettre à jour et supprimer les connexions qu'il est autorisé à gérer, mais il ne peut pas vérifier l'état des opérations de longue durée qui en résultent. Si un utilisateur restreint doit suivre des opérations, attribuez-lui un rôle personnalisé distinct sans condition, qui ne contient que l'autorisation connectors.operations.get.

Avec ce rôle, l'utilisateur peut afficher n'importe quelle opération dans le projet, y compris les opérations pour les connexions auxquelles il ne peut pas accéder autrement. Il s'agit des mêmes informations de connexion que l'utilisateur peut déjà afficher, car il peut lister toutes les connexions. N'accordez pas les autorisations connectors.operations.cancel ou connectors.operations.delete aux utilisateurs dont l'accès est limité par une condition, car ces autorisations leur permettraient d'annuler ou de supprimer des opérations pour n'importe quelle connexion du projet.

Ajouter des conditions IAM pour les comptes de service Application Integration

Vous pouvez appliquer des conditions IAM au compte de service Application Integration, ce qui vous permet de limiter les connexions auxquelles le compte de service peut accéder lors de l'exécution de l'intégration. Par exemple, vous pouvez limiter un compte de service afin qu'il n'ait accès qu'aux connexions dont le nom commence par marketing-. Pour en savoir plus, consultez Appliquer des conditions IAM à un compte de service.

Le tableau suivant présente des exemples de conditions de ressources que vous pouvez appliquer à un compte de service Application Integration.

Condition de ressource IAM Description
resource.name.startsWith
("projects/PROJECT_ID/locations/CONNECTION_LOCATION/
connections/marketing-")
Le compte de service auquel vous appliquez cette condition ne peut exécuter que les connexions dont le nom commence par marketing-.

Étapes suivantes

Consultez les informations suivantes dans la documentation IAM :