Accès uniforme au niveau du bucket

Accéder aux exemples

Cette page traite de l'accès uniforme au niveau du bucket, une fonctionnalité qui vous permet de contrôler de manière uniforme l'accès à vos ressources Cloud Storage. Lorsque vous activez l'accès uniforme au niveau du bucket, les listes de contrôle d'accès (LCA) sont désactivées et seules les autorisations Identity and Access Management (IAM) au niveau du bucket définissent l'accès à ce bucket et aux objets qu'il contient. Vous révoquez ainsi tous les accès accordés par les LCA d'objets et la capacité d'administrer des autorisations à l'aide de LCA de buckets.

Présentation

Cloud Storage propose deux systèmes pour autoriser des utilisateurs à accéder à vos buckets et objets : IAM et les listes de contrôle d'accès (LCA). Ces systèmes fonctionnent en parallèle : pour qu'un utilisateur puisse accéder à une ressource Cloud Storage, seul l'un des systèmes doit lui accorder l'autorisation. IAM est utilisé dans Google Cloud et vous permet d'accorder diverses autorisations au niveau du bucket et du projet. Les LCA ne sont utilisées que par Cloud Storage et disposent d'options d'autorisation limitées. Elles vous permettent toutefois d'accorder des autorisations pour chaque objet.

Afin d'uniformiser le système d'autorisations, Cloud Storage offre une fonctionnalité d'accès uniforme au niveau du bucket. L'utilisation de cette fonctionnalité désactive les listes de contrôle d'accès pour toutes les ressources Cloud Storage. L'accès aux ressources Cloud Storage est alors accordé exclusivement à travers IAM. Après avoir activé l'accès uniforme au niveau du bucket, vous pouvez annuler votre décision pendant 90 jours.

Devez-vous utiliser l'accès uniforme au niveau du bucket ?

En règle générale, nous vous recommandons d'utiliser un accès uniforme au niveau du bucket, car il permet d'uniformiser et de simplifier l'accès à vos ressources Cloud Storage.

L'utilisation d'un accès uniforme au niveau du bucket vous permet également d'utiliser d'autres fonctionnalités de sécurité Google Cloud, telles que le partage restreint de domaine et les conditions IAM.

Il est possible que vous ne souhaitiez pas utiliser un accès uniforme au niveau du bucket et que vous conserviez des LCA précises dans les cas suivants :

  • Vous souhaitez contrôler l'accès à des objets spécifiques d'un bucket via d'anciennes LCA.

  • Vous souhaitez que les utilisateurs à l'origine d'un transfert d'objet puissent garder le contrôle total de cet objet, mais qu'ils aient un accès restreint aux autres objets de votre bucket.

Restrictions

Les restrictions ci-dessous s'appliquent lors de l'utilisation de l'accès uniforme au niveau du bucket :

  • Cloud Logging et Cloud Audit Logging ne peuvent pas exporter vers des buckets, dont l'accès uniforme au niveau du bucket est activé.

  • L'API XML ne permet pas d'afficher ou de définir des autorisations pour les buckets pour lesquels l'accès uniforme au niveau du bucket est activé.

Comportement lorsque la stratégie est activée

Vous pouvez activer l'accès uniforme au niveau du bucket de deux manières : lors de la création du bucket ou en activant explicitement cette fonctionnalité sur un bucket existant.

Une fois la fonctionnalité activée, un bucket présente le comportement suivant :

  • Les requêtes de définition, de lecture, ou de modification des LCA de buckets et d'objets échouent avec une erreur 400 Bad Request.

  • Les requêtes d'API JSON demandant une projection complète des métadonnées de bucket ou d'objet comportent dans la réponse une LCA vide.

  • Les commandes gsutil cp -p, mv -p et rsync -p échouent (aussi bien lorsque le bucket avec accès uniforme au niveau du bucket est la source que lorsqu'il est la destination). Les commandes gsutil acl et defacl échouent également.

  • La propriété individuelle des objets n'existe plus. L'accès octroyé par cette propriété est révoqué, et les requêtes de métadonnées de bucket et d'objet ne contiennent plus de champ owner.

  • Au moment de la création, les buckets reçoivent des rôles IAM spécialisés. Si vous activez l'accès uniforme au niveau du bucket lors de sa création, des rôles IAM supplémentaires lui sont attribués, comme indiqué dans le tableau associé.

    • Ce comportement maintient les autorisations dont les objets ont hérité via les LCA d'objets par défaut du bucket.

    • Si vous activez l'accès uniforme au niveau du bucket sur un bucket existant, vous devez appliquer ces rôles manuellement. Il peut être souhaitable d'appliquer un ensemble de rôles différent si vous avez modifié les listes de contrôle d'accès aux objets par défaut du bucket.

Comportement si la fonctionnalité est désactivée

Afin de permettre la désactivation de l'accès uniforme au niveau du bucket et la remise en place des listes de contrôle d'accès, Cloud Storage conserve une sauvegarde des LCA existantes pendant 90 jours. Si vous désactivez l'accès uniforme au niveau du bucket pendant cette période :

  • Les objets récupèrent leurs LCA enregistrées.

  • Tous les objets ajoutés au bucket après l'activation de l'accès uniforme au niveau du bucket acquièrent des LCA selon les LCA d'objets par défaut utilisées par le bucket.

Éléments à prendre en compte lors de la migration d'un bucket existant

Lorsque vous activez l'accès uniforme au niveau du bucket sur un bucket existant, vous devez vous assurer que les autorisations d'accès des utilisateurs et des services qui dépendaient auparavant des LCA sont déplacées vers IAM. Cette section décrit certaines étapes à suivre lors de la migration d'un bucket vers l'accès uniforme au niveau du bucket. Notez que les LCA et IAM étant synchronisés pour les autorisations de bucket, vos considérations se concentrent spécifiquement sur l'accès aux objets de votre bucket, et non sur l'accès au bucket.

Déterminer si une autorisation IAM au niveau du bucket surexpose les données

Avant d'attribuer des rôles IAM équivalents à vos LCA, tenez compte des points suivants :

  • Une autorisation IAM appliquée au niveau du bucket s'applique à tous les objets du bucket, alors que les listes de contrôle d'accès aux objets peuvent varier d'un objet à l'autre.

Si vous souhaitez appliquer un accès à certains objets mais pas à d'autres, vous devez regrouper les objets dans des buckets distincts. Chaque groupe doit contenir les objets dotés des mêmes autorisations.

Vérifier l'utilisation des listes de contrôle d'accès aux objets

Lors de la migration vers l'accès uniforme au niveau du bucket, vous devez vérifier si les objets du bucket sont accessibles via les LCA qui leur sont appliquées. Pour ce faire, Cloud Monitoring dispose d'une métrique qui suit l'utilisation des LCA. Si cette métrique indique que les utilisateurs ou les services dépendent des LCA pour accéder à vos objets, vous devez attribuer des rôles IAM équivalents au bucket avant d'activer l'accès uniforme au niveau du bucket. Pour savoir comment vérifier l'utilisation des LCA dans Monitoring, consultez la section Vérifier l'utilisation des listes de contrôle d'accès.

Utilisez cette métrique pour déterminer si l'activation de l'accès uniforme au niveau du bucket risque d'entraîner une interruption de votre workflow :

Statistique Description
storage.googleapis.com/authz/acl_operations_count Nombre d'opérations de LCA qui seront désactivées une fois l'accès uniforme au niveau du bucket activé, réparties par type d'opération de LCA et par bucket.

OBJECT_ACCESS_REQUIRED_OBJECT_ACL est une opération de LCA qu'il est important d'examiner :

  • Si ce nombre est égal à zéro, aucune LCA au niveau des objets n'a été requise pour accéder aux objets au cours des six dernières semaines. Les stratégies IAM fournissent les autorisations nécessaires au niveau du bucket ou du projet.

  • Si ce nombre est supérieur à zéro, des requêtes d'accès aux objets, nécessitant des autorisations accordées par des LCA d'objets, ont été effectuées au cours des six dernières semaines. Vous devez définir des règles IAM équivalentes avant d'activer l'accès uniforme au niveau du bucket.

Pour en savoir plus sur les métriques de Monitoring, consultez la page Métriques, séries temporelles et ressources.

Vérifier la liste de contrôle d'accès aux objets par défaut du bucket

Tous les buckets sont associés à une LCA d'objets par défaut, qui est appliquée aux nouveaux objets ajoutés à un bucket, sauf si une LCA est explicitement fournie au moment de l'ajout de l'objet au bucket.

Avant d'activer l'accès uniforme au niveau du bucket, vérifiez la LCA d'objets par défaut associée à votre bucket. Déterminez si vous souhaitez accorder les autorisations associées à la LCA d'objets par défaut après avoir activé l'accès uniforme au niveau du bucket. Le cas échéant, attribuez des rôles IAM équivalents au bucket.

Attribuer des rôles IAM équivalents aux listes de contrôle d'accès aux objets

Les LCA d'objets peuvent accorder certains accès qu'IAM n'accorde pas actuellement. Pour vous assurer que les utilisateurs existants ne perdent pas l'accès aux objets lorsque vous activez l'accès uniforme au niveau du bucket, utilisez le tableau suivant et attribuez les rôles IAM appropriés aux utilisateurs concernés.

Autorisation dans la LCA d'objet Rôle IAM équivalent
READER Lecteur des anciens objets Storage (roles/storage.legacyObjectReader)
OWNER Propriétaire des anciens objets Storage (roles/storage.legacyObjectOwner)

Éléments à prendre en considération lors de l'utilisation des conditions IAM

Afin d'éviter tout conflit entre les stratégies IAM et les LCA d'objets d'un bucket, les conditions IAM ne peuvent être utilisées que pour les buckets sur lesquels l'accès uniforme au niveau du bucket a été activé. Autrement dit :

  • Pour définir des conditions IAM sur un bucket, vous devez d'abord activer l'accès uniforme au niveau du bucket sur ce bucket.

  • Pour désactiver l'accès uniforme au niveau du bucket pour un bucket, vous devez d'abord supprimer toutes les conditions IAM incluses dans la stratégie de ce bucket. Pour en savoir plus sur l'affichage et la suppression de conditions définies dans la stratégie d'un bucket, consultez la section Utiliser des conditions IAM sur un bucket. Notez que l'accès uniforme au niveau du bucket ne peut pas être désactivé s'il est actif sur un bucket depuis 90 jours consécutifs.

Étapes suivantes