Accès uniforme au niveau du bucket

Configuration

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é sur un bucket désactive les LCA pour toutes les ressources Cloud Storage qu'il contient. L'accès aux ressources Cloud Storage est alors accordé exclusivement à travers IAM. 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.

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, la fédération d'identité de personnel 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.

  • Vous pouvez utiliser l'API XML pour afficher ou définir des autorisations pour les buckets.

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.

  • 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, ce dernier obtient des rôles IAM supplémentaires.

    • Ce comportement maintient les autorisations dont les objets auraient pu hériter à partir de la LCA d'objet par défaut d'un bucket.

    • Si vous activez l'accès uniforme au niveau du bucket sur un bucket existant, vous devez appliquer ces rôles manuellement. Si vous avez précédemment modifié la LCA associée aux objets par défaut du bucket, vous souhaiterez probablement appliquer un autre ensemble de rôles IAM.

Comportement si la stratégie est désactivée

Afin de permettre la désactivation de l'accès uniforme au niveau du bucket et le retour à l'utilisation des LCA, Cloud Storage enregistre les LCA existantes. Si vous désactivez l'accès uniforme au niveau du bucket :

  • 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.

Considérations relatives à 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

Les buckets sans accès uniforme au niveau du bucket sont associés à une LCA d'objet par défaut qui est appliquée aux nouveaux objets ajoutés à ces buckets, sauf si une LCA est explicitement fournie au moment de l'ajout de l'objet au bucket.

Par exemple, les buckets utilisent généralement la LCA prédéfinie projectPrivate comme LCA d'objet par défaut. projectPrivate accorde à l'objet l'autorisation READER aux lecteurs du projet associés au bucket et l'autorisation OWNER aux éditeurs et propriétaires du projet associés 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 :

Étapes suivantes