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 toutGoogle 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 proposent des 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 par le biais d'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 recommandons d'utiliser l'accès uniforme au niveau du bucket :
L'accès uniforme au niveau du bucket permet d'uniformiser et de simplifier la façon dont vous accordez l'accès à vos ressources Cloud Storage.
L'accès uniforme au niveau du bucket empêche l'exposition involontaire des données par des LCA.
Vous devez activer l'accès uniforme au niveau du bucket pour utiliser les fonctionnalités suivantes :
- Espace de noms hiérarchique
- Dossiers gérés
- Conditions IAM définies directement sur le bucket
Vous devez activer l'accès uniforme au niveau du bucket pour accorder aux entités Fédération des identités des employés ou Fédération d'identité de charge de travail l'accès aux ressources Cloud Storage.
Vous ne devez pas utiliser l'accès uniforme au niveau du bucket si vous souhaitez utiliser le système de LCA pour votre bucket.
Comportement lorsque la fonctionnalité 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.- Cela inclut les requêtes API JSON utilisant les méthodes
BucketAccessControls,DefaultObjectAccessControlsouObjectAccessControls.
- Cela inclut les requêtes API JSON utilisant les méthodes
Les requêtes API JSON demandant une projection complète des métadonnées de bucket ou d'objet reçoivent une réponse comportant une liste 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 la création d'un bucket, celui-ci obtient des rôles IAM supplémentaires.
Ce comportement maintient les autorisations dont les objets auraient hérité de la LCA d'objet par défaut standard pour 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 fonctionnalité 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.
Conditions requises pour désactiver l'accès uniforme au niveau du bucket
Pour que vous puissiez désactiver l'accès uniforme au niveau du bucket, les conditions suivantes doivent être remplies :
La fonctionnalité a été activée pendant moins de 90 jours consécutifs.
Vous avez supprimé toutes les conditions IAM de la stratégie IAM du bucket.
Le bucket n'est pas soumis à la contrainte de règle d'administration Exiger un accès uniforme au niveau du bucket.
Vous avez supprimé tous les dossiers gérés du bucket.
Éléments à prendre en compte pour 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 à ceux accordés par 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 LCA d'objets peuvent varier d'un objet à l'autre.
Si vous souhaitez appliquer une autorisation d'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 ACL d'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 :
| Métrique | 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épartition 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, cela indique que 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 Monitoring, consultez la page Métriques, séries temporelles et ressources.
Vérifier l'ACL d'objet 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. Celle-ci 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 pour l'objet concerné l'autorisation READER aux lecteurs de projet associés au bucket, et l'autorisation OWNER aux éditeurs et propriétaires de projet associés au bucket.
Avant d'activer l'accès uniforme au niveau du bucket, vérifiez la LCA d'objet 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 LCA d'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 compte lors de l'utilisation de 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 pouvoir désactiver l'accès uniforme au niveau du bucket dans un bucket, vous devez d'abord supprimer toutes les conditions IAM incluses dans la stratégie définie pour ce bucket. Pour découvrir comment afficher et supprimer des conditions définies dans la stratégie d'un bucket, consultez Utiliser des conditions IAM sur un bucket.
Étapes suivantes
- Découvrez comment utiliser l'accès uniforme au niveau du bucket.
- Découvrez la contrainte d'application de l'accès uniforme au niveau du bucket, que vous pouvez définir dans une organisation, un dossier ou un projet Google Cloud .
- Définissez des autorisations IAM sur les buckets et les projets.