Cas d'utilisation: Contrôle des accès avec des comptes de service d'espace de noms
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page décrit le cas d'utilisation dans lequel vous contrôlez l'accès aux ressources Google Cloudau niveau de l'espace de noms lorsque vous migrez des données de Cloud Storage vers BigQuery.
Pour une meilleure isolation des données, vous pouvez associer un compte de service IAM personnalisé (appelé compte de service par espace de noms) à chaque espace de noms. Le compte de service IAM personnalisé, qui peut être différent pour différents espaces de noms, vous permet de contrôler l'accès aux ressourcesGoogle Cloud entre les espaces de noms pour les opérations de conception de pipelines dans Cloud Data Fusion, telles que l'aperçu des pipelines, Wrangler et la validation des pipelines.
Dans ce cas d'utilisation, votre service marketing migre des données de Cloud Storage vers BigQuery à l'aide de Cloud Data Fusion.
Le service marketing compte trois équipes : A, B et C.
Votre objectif est d'établir une approche structurée pour contrôler l'accès aux données dans Cloud Storage via les espaces de noms Cloud Data Fusion correspondant à chaque équipe (A, B et C, respectivement).
Solution
Les étapes suivantes expliquent comment contrôler l'accès aux ressources Google Cloud avec des comptes de service d'espace de noms, ce qui empêche l'accès non autorisé entre les data stores de différentes équipes.
Associer un compte de service Identity and Access Management à chaque espace de noms
Configurez le contrôle des accès en ajoutant un compte de service personnalisé pour l'équipe A (par exemple, team-a@pipeline-design-time-project.iam.gserviceaccount.com).
Figure 1 : Ajouter un compte de service personnalisé pour l'équipe A.
Répétez les étapes de configuration pour les équipes B et C afin de configurer le contrôle des accès avec des comptes de service personnalisés similaires.
Limiter l'accès aux buckets Cloud Storage
Limitez l'accès aux buckets Cloud Storage en accordant les autorisations appropriées :
Accordez au compte de service IAM l'autorisation storage.buckets.list, requise pour lister les buckets Cloud Storage dans le projet.
Pour en savoir plus, consultez Lister les buckets.
Autorisez le compte de service IAM à accéder aux objets de certains buckets.
Par exemple, attribuez le rôle Lecteur des objets Storage au compte de service IAM associé à l'espace de noms team_A sur le bucket team_a1. Cette autorisation permet à l'équipe A d'afficher et de lister les objets et les dossiers gérés, ainsi que leurs métadonnées, dans ce bucket dans un environnement de conception isolé.
Figure 2 : Sur la page Buckets de Cloud Storage, ajoutez l'équipe en tant que principal et attribuez-lui le rôle "Utilisateur d'objet Storage".
Créer la connexion Cloud Storage dans les espaces de noms respectifs
Créez une connexion Cloud Storage dans l'espace de noms de chaque équipe :
Dans la console Google Cloud , accédez à la page Instances de Cloud Data Fusion et ouvrez une instance dans l'interface Web de Cloud Data Fusion.
Cliquez sur Administrateur système > Configuration > Espaces de noms.
Cliquez sur l'espace de noms que vous souhaitez utiliser (par exemple, l'espace de noms de l'équipe A).
Cliquez sur l'onglet Connexions, puis sur Ajouter une connexion.
Sélectionnez GCS et configurez la connexion.
Figure 3 : Configurez la connexion Cloud Storage pour l'espace de noms.
Créez une connexion Cloud Storage pour chaque espace de noms en répétant les étapes précédentes. Chaque équipe peut ensuite interagir avec une copie isolée de cette ressource pour ses opérations de conception.
Valider l'isolation au moment de la conception pour chaque espace de noms
L'équipe A peut valider l'isolation au niveau de la conception en accédant aux buckets Cloud Storage dans leurs espaces de noms respectifs :
Dans la console Google Cloud , accédez à la page Instances de Cloud Data Fusion et ouvrez une instance dans l'interface Web de Cloud Data Fusion.
Cliquez sur Administrateur système > Configuration > Espaces de noms.
Sélectionnez un espace de noms, par exemple l'espace de noms de l'équipe A, team_A.
Cliquez sur menu > Menu > Wrangler.
Cliquez sur GCS.
Dans la liste des buckets, cliquez sur le bucket team_a1.
Vous pouvez afficher la liste des buckets, car l'espace de noms de l'équipe A dispose de l'autorisation storage.buckets.list.
Lorsque vous cliquez sur le bucket, vous pouvez afficher son contenu, car l'espace de noms de l'équipe A dispose du rôle Lecteur des objets Storage.
Figures 4 et 5 : Vérifiez que l'équipe A peut accéder au bucket de stockage approprié.
Revenez à la liste des buckets, puis cliquez sur le bucket team_b1 ou team_c1.
L'accès est limité, car vous avez isolé cette ressource au moment de la conception pour l'équipe A à l'aide de son compte de service d'espace de noms.
Figure 6 : Vérifiez que l'équipe A ne peut pas accéder aux buckets de stockage des équipes B et C.
Étapes suivantes
En savoir plus sur les fonctionnalités de sécurité dans Cloud Data Fusion
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eThis content details how to control access to Google Cloud resources at the namespace level in Cloud Data Fusion, using a customized IAM service account for each namespace to enhance data isolation.\u003c/p\u003e\n"],["\u003cp\u003eA practical scenario is presented where the marketing department, divided into three teams (A, B, and C), utilizes Cloud Data Fusion to migrate data from Cloud Storage to BigQuery, with each team operating within its own isolated namespace.\u003c/p\u003e\n"],["\u003cp\u003eAccess to Cloud Storage buckets is limited by granting the IAM service account \u003ccode\u003estorage.buckets.list\u003c/code\u003e permission and specific bucket access permissions like the Storage Object Viewer role.\u003c/p\u003e\n"],["\u003cp\u003eEach team creates a Cloud Storage connection within its respective namespace, allowing them to interact with an isolated copy of the resource during design-time operations, preventing unauthorized access between teams.\u003c/p\u003e\n"],["\u003cp\u003eThe isolation is validated by demonstrating that Team A can access its designated bucket (\u003ccode\u003eteam_a1\u003c/code\u003e) but is restricted from accessing buckets belonging to other teams (\u003ccode\u003eteam_b1\u003c/code\u003e or \u003ccode\u003eteam_c1\u003c/code\u003e).\u003c/p\u003e\n"]]],[],null,["# Use case: Access control with namespace service accounts\n\n| **Preview**\n|\n|\n| This feature is subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section\n| of the [Service Specific Terms](/terms/service-terms#1).\n|\n| Pre-GA features are available \"as is\" and might have limited support.\n|\n| For more information, see the\n| [launch stage descriptions](/products#product-launch-stages).\n\nThis page describes the use case where you control access to Google Cloud\nresources at the namespace level when you migrate data from Cloud Storage to\nBigQuery.\n\nTo control access to Google Cloud resources, namespaces in\nCloud Data Fusion use the [Cloud Data Fusion API Service Agent](/iam/docs/understanding-roles#datafusion.serviceAgent)\nby default.\n\nFor better data isolation, you can associate a customized IAM\nservice account (known as a *Per Namespace Service Account*) with each\nnamespace. The customized IAM service account, which can be\ndifferent for different namespaces, lets you control access to\nGoogle Cloud resources between namespaces for pipeline design-time\noperations in Cloud Data Fusion, such as pipeline preview, Wrangler, and\npipeline validation.\n\nFor more information, see [Access control with namespace service accounts](/data-fusion/docs/how-to/control-access-in-namespace).\n\nScenario\n--------\n\nIn this use case, your marketing department migrates data from\nCloud Storage to BigQuery using Cloud Data Fusion.\n\nThe marketing department has three teams: A, B, and C.\nYour objective is to establish a structured approach to control data access in\nCloud Storage through Cloud Data Fusion namespaces corresponding\nto each team---A, B, and C, respectively.\n\nSolution\n--------\n\nThe following steps show how you control access to Google Cloud resources\nwith namespace service accounts, preventing unauthorized access between the\ndatastores of different teams.\n\n### Associate an Identity and Access Management service account to each namespace\n\nConfigure an IAM service account in the namespace for each team\n(see\n[Configure a namespace service account](/data-fusion/docs/how-to/control-access-in-namespace#configure)):\n\n1. Set up the access control by adding a customized service account for\n Team A---for example,\n `team-a@pipeline-design-time-project.iam.gserviceaccount.com`.\n\n **Figure 1**: Add a customized service account for Team A.\n2. Repeat the configuration steps for Teams B and C to set up access\n control with similar customized service accounts.\n\n### Limit access to the Cloud Storage buckets\n\nLimit the access to Cloud Storage buckets by giving appropriate\npermissions:\n\n1. Give the IAM service account the `storage.buckets.list` permission, required to list Cloud Storage buckets in the project. For more information, see [Listing buckets](/storage/docs/listing-buckets#console-list-buckets).\n2. Give the IAM service account permission to access the\n objects in particular buckets.\n\n For example, grant the\n [Storage Object Viewer](/storage/docs/access-control/iam-roles#standard-roles)\n role to the IAM service account associated with the\n namespace `team_A` on the bucket `team_a1`. This permission lets Team A view\n and list objects and managed folders, along with their metadata, in that\n bucket in an isolated design time environment.\n **Figure 2** : On the Cloud Storage **Buckets** page, add the team as a principal and assign the Storage Object User role.\n\n### Create the Cloud Storage connection in the respective namespaces\n\nCreate Cloud Storage connection in each team's namespace:\n\n1. In the Google Cloud console, go to the Cloud Data Fusion\n **Instances** page and open an instance in the Cloud Data Fusion web\n interface.\n\n [Go to Instances](https://console.cloud.google.com/data-fusion/locations/-/instances)\n2. Click **System admin \\\u003e Configuration \\\u003e Namespaces**.\n\n3. Click the namespace you want to use---for example, the namespace for Team A.\n\n4. Click the **Connections** tab, and then click **Add connection**.\n\n5. Select **GCS** and configure the connection.\n\n **Figure 3**: Configure the Cloud Storage connection for the namespace.\n6. Create a Cloud Storage connection for every namespace by\n repeating the preceding steps. Each team can then interact with an isolated\n copy of that resource for their design time operations.\n\n### Validate design time isolation for each namespace\n\nTeam A can validate the isolation at design by accessing Cloud Storage\nbuckets in their respective namespaces:\n\n1. In the Google Cloud console, go to the Cloud Data Fusion\n **Instances** page and open an instance in the Cloud Data Fusion web\n interface.\n\n [Go to Instances](https://console.cloud.google.com/data-fusion/locations/-/instances)\n2. Click **System admin \\\u003e Configuration \\\u003e Namespaces**.\n\n3. Select a namespace---for example the Team A namespace, `team_A`.\n\n4. Click menu\n **Menu \\\u003e Wrangler**.\n\n5. Click **GCS**.\n\n6. In the bucket list, click the `team_a1` bucket.\n\n - You can view the list of buckets because the Team A namespace has\n `storage.buckets.list` permission.\n\n - When you click the bucket, you can view its contents because the Team A\n namespace has the Storage Object Viewer role.\n\n **Figures 4 and 5**: Check that Team A can access the appropriate storage bucket.\n7. Go back to the bucket list and click the `team_b1` or `team_c1` bucket.\n The access is restricted, as you isolated this design time resource for\n Team A using its namespace service account.\n\n **Figure 6**: Check that Team A cannot access Team B and C storage buckets.\n\nWhat's next\n-----------\n\n- Learn more about [security](/data-fusion/docs/concepts/security) features in Cloud Data Fusion."]]