Ce document présente des scénarios courants de partage de données et de collaboration. Il explique comment les mettre en œuvre en configurant des stratégies Identity and Access Management (IAM) pour les projets et les buckets, ainsi que des Listes de contrôle d'accès (LCA) pour les objets.
Stockage et maintenance de données privées
Dans ce scénario, l'analyste marketing d'une entreprise souhaite utiliser Cloud Storage pour sauvegarder des projections de ventes et des prévisions de revenus confidentielles. Il doit être le seul à pouvoir accéder aux données. Le département informatique surveille et gère le compte Cloud Storage de l'entreprise. Ses principales responsabilités en matière de gestion consistent, entre autres, à créer et à partager des buckets de sorte que divers départements de l'entreprise aient accès à Cloud Storage.
Pour répondre aux besoins de l'analyste marketing en matière de confidentialité, les autorisations relatives aux buckets et aux objets doivent permettre au personnel informatique de gérer le bucket dans lequel les feuilles de calcul sont stockées, mais aussi empêcher ce personnel d'afficher et de télécharger les données stockées dans le bucket. Il convient donc de créer un bucket nommé finance-marketing
et d'accorder les rôles ci-dessous aux entités principales spécifiées pour les ressources répertoriées :
Rôle | Ressource | Principal | Description |
---|---|---|---|
Propriétaire des anciens buckets Storage | Bucket finance-marketing |
Personnel informatique | L'attribution du rôle Propriétaire des anciens buckets Storage au personnel informatique lui permet d'exécuter des tâches de gestion courantes sur le bucket (telles que la suppression d'objets et la modification de la stratégie IAM appliquée). Elle permet également à l'équipe informatique de répertorier le contenu du bucket finance-marketing , mais pas de le consulter ni de le télécharger. |
Créateur d'objets Storage | Bucket finance-marketing |
Analyste marketing | L'attribution du rôle Créateur d'objets Storage à l'analyste marketing lui permet d'importer des objets dans le bucket. L'analyste devient propriétaire de l'objet importé, et peut ensuite l'afficher, le mettre à jour et le supprimer. |
Avec ces rôles, personne, à l'exception de l'analyste marketing, ne peut ni afficher, ni télécharger les objets qu'il ajoute au bucket. Toutefois, l'analyste a la possibilité d'accorder l'accès aux autres utilisateurs en modifiant les LCA de l'objet. L'équipe informatique peut toujours répertorier le contenu du bucket finance-marketing
, ainsi que supprimer et remplacer les fichiers stockés dans le bucket en cas de besoin.
Implémenter ce scénario
Vos actions
Pour mettre en œuvre ce scénario, exécutez l'action suivante :
Créez un bucket nommé
finance-marketing
. Pour obtenir des instructions détaillées, consultez la page sur la création de buckets.Attribuez à chaque membre du personnel informatique le rôle Propriétaire des anciens buckets Storage. Pour obtenir des instructions détaillées, consultez la section Ajouter une entité principale à une stratégie au niveau du bucket.
Actions du personnel informatique
Pour mettre en œuvre ce scénario, le personnel informatique doit exécuter l'action suivante :
- Attribuez à l'analyste marketing le Créateur d'objets Storage pour le bucket. Pour obtenir des instructions détaillées, consultez la section Ajouter une entité principale à une stratégie au niveau du bucket.
Boîte de dépôt du fournisseur
Dans ce scénario, une entreprise de construction collabore avec plusieurs cabinets d'architecture qui fournissent des plans de construction pour divers projets. Elle souhaite mettre en place une boîte de dépôt pour les fournisseurs afin qu'ils puissent importer des plans architecturaux à différentes étapes du projet. Cette boîte doit garantir la confidentialité des clients de l'entreprise de construction, de sorte que chaque fournisseur ne puisse pas consulter le travail des autres. Il convient donc de créer un bucket distinct pour chaque cabinet d'architecture et d'accorder les rôles ci-dessous aux entités principales spécifiées pour les ressources répertoriées :
Rôle | Ressource | Principal | Description |
---|---|---|---|
Propriétaire | Projet global | Responsable de l'entreprise de construction | L'attribution au responsable de l'entreprise de construction du rôle Propriétaire au niveau du projet lui permet de créer des buckets pour chaque fournisseur. |
Lecteur des objets Storage | Projet global | Responsable de l'entreprise de construction | Le rôle Lecteur des objets Storage permet au responsable de l'entreprise de construction de télécharger les objets importés par les fournisseurs. |
Propriétaire des anciens buckets Storage | Bucket de chaque fournisseur | Responsable de l'entreprise de construction | Le rôle Propriétaire des anciens buckets Storage permet au responsable de l'entreprise de construction de répertorier le contenu de chaque bucket et de supprimer des objets à la fin de chaque étape du projet. |
Administrateur des objets Storage | Bucket de chaque fournisseur | Fournisseur associé au bucket | L'attribution à chaque fournisseur du rôle Administrateur des objets Storage pour son propre bucket lui donne le contrôle total sur les objets qu'il contient, y compris la possibilité d'importer des objets, de répertorier des objets dans le bucket et de contrôler qui a accès à chaque objet. En revanche, il lui est impossible de modifier ou d'afficher les métadonnées (telles que les rôles s'appliquant à l'ensemble du bucket), de même que de répertorier ou d'afficher les autres buckets du projet, ce qui préserve la confidentialité entre fournisseurs. |
Implémenter ce scénario
Vos actions
Pour mettre en œuvre ce scénario, exécutez l'action suivante :
- Attribuez au responsable de l'entreprise de construction les rôles Propriétaire et Lecteur des objets Storage sur le projet. Pour obtenir des instructions détaillées, consultez la page Attribuer un rôle unique.
Actions du responsable de l'entreprise de construction
Pour mettre en œuvre ce scénario, le responsable de l'entreprise de construction doit exécuter les actions suivantes :
Créer un bucket distinct pour chaque fournisseur. Pour obtenir des instructions détaillées, consultez la page Créer des buckets de stockage.
Comme le responsable de l'entreprise de construction dispose du rôle Propriétaire, il obtient automatiquement le rôle Propriétaire des anciens buckets Storage pour chaque bucket qu'il crée.
Attribuez à chaque fournisseur le rôle Administrateur des objets Storage pour son bucket. Pour obtenir des instructions détaillées, consultez la section Ajouter une entité principale à une stratégie au niveau du bucket.
Si un fournisseur a l'intention d'utiliser la console Google Cloud, donnez-lui un lien vers son bucket, au format suivant :
https://console.cloud.google.com/storage/browser/BUCKET_NAME
où
BUCKET_NAME
est le nom du bucket du fournisseur.
Actions des fournisseurs
Pour mettre en œuvre ce scénario, chaque fournisseur doit exécuter les actions suivantes :
Importer des objets dans le bucket attribué. La méthode la plus simple consiste à utiliser la console Google Cloud. D'autres méthodes, telles que Google Cloud CLI, nécessitent une configuration supplémentaire préalable à l'utilisation. Pour obtenir des instructions détaillées, consultez la page Importer des objets.
Téléchargements de navigateurs authentifiés
Dans ce scénario, un client souhaite mettre des fichiers particuliers à la disposition de personnes spécifiques au moyen de simples téléchargements via un navigateur. Pour ce faire, vous pouvez mettre en œuvre l'authentification basée sur les cookies de Cloud Storage. Pour télécharger des objets, les utilisateurs doivent s'authentifier en se connectant à un compte valide, qui inclut Google Workspace, Cloud Identity, Gmail et la fédération des identités des employés. Les utilisateurs authentifiés suivants peuvent télécharger l'objet :
Utilisateurs disposant de l'autorisation
READ
ouFULL_CONTROL
dans la Liste de contrôle d'accès (LCA) de l'objet lui-mêmeUtilisateurs disposant de l'autorisation
storage.objects.get
dans la stratégie Identity and Access Management (IAM) du bucket ou du projet contenant l'objet.
Tous les autres utilisateurs reçoivent une erreur 403 Forbidden (access denied)
.
Pour employer cette fonctionnalité, accordez une autorisation d'accès à un objet à un utilisateur, puis attribuez-lui une URL spéciale pointant vers cet objet. Lorsque l'utilisateur clique sur l'URL, Cloud Storage l'invite à se connecter à son compte Google (s'il ne l'a pas déjà fait). L'objet est ensuite téléchargé sur son ordinateur.
Implémenter ce scénario
Vous pouvez mettre en œuvre l'authentification basée sur les cookies par le biais de quatre étapes générales.
Créez un bucket Pour obtenir des instructions détaillées, consultez la page Créer un bucket.
Si vous créez un bucket dans un projet qui vous appartient, vous obtenez automatiquement les autorisations vous permettant d'importer des objets dedans et de redéfinir les personnes qui y ont accès.
Importer l'objet que vous souhaitez partager. Pour obtenir des instructions détaillées, consultez la page Importer des objets.
Lorsque vous importez un objet, vous en devenez le propriétaire, ce qui signifie que vous pouvez modifier ses LCA.
Autoriser les utilisateurs à accéder à l'objet. Pour effectuer cette opération, procédez de l'une des manières suivantes :
Modifiez la stratégie IAM du bucket pour attribuer à chaque utilisateur de votre choix le rôle Lecteur des objets Storage, qui s'applique à tous les objets du bucket. Pour obtenir des instructions détaillées, consultez la section Ajouter une entité principale à une stratégie au niveau du bucket.
Modifiez les LCA de l'objet pour attribuer à chaque utilisateur de votre choix l'autorisation
READ
sur l'objet concerné. Pour obtenir des instructions détaillées, consultez la section Configurer des listes de contrôle d'accès.
Fournissez aux utilisateurs une URL spéciale qui pointe vers l'objet.
Les téléchargements de navigateurs authentifiés accèdent à Cloud Storage par le biais d'un point de terminaison d'URL spécifique. Utilisez l'URL suivante :
https://storage.cloud.google.com/BUCKET_NAME/OBJECT_NAME
Où :
BUCKET_NAME
correspond au nom du bucket contenant l'objet souhaité. Exemple :my-bucket
OBJECT_NAME
correspond au nom de l'objet souhaité. Exemple :pets/dog.png
Étant donné que seuls les utilisateurs disposant des autorisations LCA ou IAM appropriées peuvent afficher cette URL, la manière dont vous la rendez disponible importe peu. Vous pouvez l'envoyer aux utilisateurs directement ou la publier sur une page Web.
Utiliser un groupe pour contrôler les accès
Dans ce scénario, vous souhaitez rendre des objets disponibles pour des utilisateurs spécifiques (par exemple, des utilisateurs invités à tester un nouveau logiciel). En outre, vous voulez inviter de nombreux utilisateurs, sans définir d'autorisation pour chacun d'eux. Par ailleurs, les objets ne doivent pas être lisibles publiquement. Vous ne souhaitez pas non plus envoyer de liens aux clients invités pour qu'ils accèdent aux objets, car ces liens risquent d'être transmis à des utilisateurs non invités.
Une manière de gérer ce scénario consiste à utiliser Google Groupes. Vous pouvez créer un groupe et n'y ajouter que les utilisateurs invités. Ensuite, vous autoriserez l'ensemble du groupe à accéder aux objets :
Rôle | Ressource | Principal | Description |
---|---|---|---|
Lecteur des objets Storage | Votre bucket | Groupe Google | L'attribution au groupe Google du rôle Lecteur des objets Storage pour le bucket permet à n'importe quel client faisant partie du groupe Google d'afficher des objets dans le bucket. Les utilisateurs n'appartenant pas au groupe n'ont pas accès aux objets. |
Implémenter ce scénario
Créez un groupe Google, puis ajoutez-lui des clients. Pour obtenir des instructions détaillées, consultez la page Créer un groupe et choisir ses paramètres.
Créez un bucket. Pour obtenir des instructions détaillées, consultez la page Créer des buckets de stockage.
Importez des objets dans le bucket. Pour obtenir des instructions détaillées, consultez la page Importer des objets.
Autorisez le groupe Google à accéder aux objets.
Vous pouvez utiliser le rôle IAM storage.objectViewer pour accorder un accès en lecture à tous les objets de votre bucket. Pour obtenir des instructions détaillées, consultez la section Ajouter une entité principale à une stratégie au niveau du bucket.
Si vous souhaitez n'autoriser l'accès qu'à certains objets du bucket, définissez la LCA de lecture pour ces objets spécifiques. Pour obtenir des instructions détaillées, consultez la section Configurer des listes de contrôle d'accès.
Partagez le point de terminaison de requête approprié avec le groupe afin qu'il sache où accéder aux objets.
Par exemple, lorsque vous utilisez la console Google Cloud, l'URL
https://console.cloud.google.com/storage/browser/BUCKET_NAME
vous redirige vers la liste des objets du bucketBUCKET_NAME
.
Contrôler les accès à l'aide des dossiers gérés
Dans ce scénario, plusieurs clients possèdent chacun un site Web unique contenant des images personnalisées. Vous souhaitez que les clients puissent importer des images sur leur site Web uniquement, mais pas sur d'autres sites Web. Lorsqu'un client annule son compte, vous souhaitez désactiver l'accès public aux images de son site Web, mais éviter de supprimer les images au cas où le client voudrait réactiver son compte.
Une manière de gérer ce scénario consiste à utiliser des dossiers gérés. Vous pouvez créer plusieurs dossiers gérés dans un bucket et utiliser IAM afin de contrôler l'accès à des dossiers gérés individuels pour vos clients et leurs utilisateurs finaux.
Implémenter ce scénario
Créez un dossier géré dans le bucket pour chaque site Web client.
Pour chaque dossier géré, définissez une stratégie IAM qui attribue à un client le rôle Utilisateur des objets de l'espace de stockage (
roles/storage.objectUser
), afin qu'il puisse importer et supprimer des objets dans le dossier géré.Pour tous les dossiers gérés, définissez une stratégie IAM qui attribue le rôle "Lecteur des objets Storage" (
roles/storage.objectViewer
) au compte principalallUsers
, de sorte que les objets image dans les dossiers gérés puissent être consultés publiquement.Vous pouvez également attribuer un rôle personnalisé qui accorde à
allUsers
l'autorisation IAMstorage.objects.get
.Lorsqu'un client annule son compte, supprimez la stratégie IAM qui lui attribue le rôle "Utilisateur des objets Storage" (
roles/storage.objectUser
) sur le dossier géré associé. Pour désactiver l'accès public aux objets de ce dossier géré, supprimez la stratégie IAM qui attribue le rôle "Lecteur des objets Storage" (roles/storage.objectViewer
) àallUsers
.