Cette page traite du paramètre de bucket Protection contre l'accès public et de la contrainte de règle d'administration de protection contre l'accès public. L'utilisation du paramètre ou de la contrainte restreint les entités, telles que les utilisateurs anonymes sur Internet, qui peuvent être autorisés à accéder à vos données. Pour obtenir une présentation des options de contrôle des accès, consultez la page Présentation du contrôle des accès.
Présentation
La protection contre l'accès public empêche les buckets et les objets Cloud Storage d'être accidentellement exposés au public. Lorsque vous empêchez l'accès public, personne ne peut rendre les données des buckets applicables publiques via des stratégies IAM ou des LCA. Il existe deux manières d'appliquer la protection contre l'accès public :
Vous pouvez appliquer la protection contre l'accès public sur des buckets individuels.
Si votre bucket est contenu dans une organisation, vous pouvez appliquer la protection contre l'accès public à l'aide de la contrainte de règle d'administration
storage.publicAccessPrevention
au niveau du projet, du dossier ou de l'organisation.
Devez-vous utiliser la protection contre l'accès public ?
Si vous savez que vos données ne doivent jamais être exposées sur l'Internet public, utilisez la protection contre l'accès public. Afin de renforcer la sécurité de vos ressources, appliquez la protection contre l'accès public au plus haut niveau possible de votre organisation.
N'utilisez pas la protection contre l'accès public si vous devez rendre le bucket public pour des cas d'utilisation tels que l'hébergement de sites Web statiques. Pour définir des exceptions pour ces buckets dans des organisations qui appliquent normalement la protection contre l'accès public, désactivez la protection contre l'accès public sur le projet spécifique qui contient le bucket.
Comportement lorsque la fonctionnalité est activée
Les ressources soumises à la protection contre l'accès public présentent le comportement suivant :
Les requêtes adressées aux buckets et aux objets autorisés à l'aide de
allUsers
et deallAuthenticatedUsers
échouent avec un code d'état HTTP401
ou403
.Les stratégies IAM existantes et les LCA qui accordent l'accès à
allUsers
et àallAuthenticatedUsers
restent en place, mais sont remplacées par la protection contre l'accès public.Les requêtes de création de buckets ou d'objets avec
allUsers
etallAuthenticatedUsers
dans leurs stratégies IAM ou leurs LCA échouent, à l'exception suivante :- Si une LCA d'objet par défaut contient
allUsers
pour un bucket, les requêtes de création d'objets dans ce bucket aboutissent. Les LCA de ces objets contiennentallUsers
, maisallUsers
est remplacé par la protection contre l'accès public.
- Si une LCA d'objet par défaut contient
Les requêtes d'ajout de
allUsers
et deallAuthenticatedUsers
à une stratégie IAM ou à une LCA échouent avec412 Precondition Failed
.
Héritage
Même si la protection contre l'accès public n'est pas explicitement appliquée au bucket dans ses paramètres, le bucket peut toujours hériter de la protection contre l'accès public, qui se produit si la contrainte de règle d'administration storage.publicAccessPrevention
est définie sur le projet, le dossier ou l'organisation dans lequel se trouve le bucket. Pour cette raison, l'état du bucket ne peut être défini que sur enforced
ou inherited
.
Si les métadonnées de protection contre l'accès public d'un bucket sont définies sur
enforced
, la protection contre l'accès public s'applique au bucket.Si les métadonnées de protection contre l'accès public d'un bucket sont définies sur
inherited
, la protection contre l'accès public est déterminée par la contrainte de règle d'administrationstorage.publicAccessPrevention
:Si
storage.publicAccessPrevention
est défini surTrue
pour le projet contenant le bucket, la protection contre l'accès public s'applique au bucket.Si
storage.publicAccessPrevention
est défini surFalse
pour le projet contenant le bucket, la protection contre l'accès public ne s'applique pas au bucket.Si
storage.publicAccessPrevention
n'est pas défini pour le projet contenant le bucket, la protection contre l'accès public est déterminée par la valeurstorage.publicAccessPrevention
définie par le dossier qui contient le projet, le cas échéant.De même, si
storage.publicAccessPrevention
n'est pas défini pour le dossier contenant le bucket, la protection contre l'accès public est déterminée par la valeurstorage.publicAccessPrevention
définie par l'organisation qui contient le projet.Si
storage.publicAccessPrevention
n'est défini pour aucune ressource, la protection contre l'accès public ne s'applique pas au bucket.
Comportement si la fonctionnalité est désactivée
Lorsque la protection contre l'accès public ne s'applique plus à une ressource, voici ce qui se produit :
Les stratégies IAM existantes et les LCA qui accordent l'accès à
allUsers
et àallAuthenticatedUsers
prennent effet et rendent les données accessibles au public.Les requêtes de création de stratégies IAM ou de LCA qui autorisent l'accès à
allUsers
et àallAuthenticatedUsers
aboutissent.Un objet créé sous la protection contre l'accès public sans LCA publique peut devenir accessible au public s'il a été créé dans un bucket accessible au public.
Vous pouvez désactiver à tout moment la protection contre l'accès public pour un projet, un dossier ou une organisation. La protection contre l'accès public est toujours appliquée aux buckets avec le paramètre enforced
, même si vous la désactivez pour un projet, un dossier ou une organisation contenant le bucket.
Remarques
Lorsque vous appliquez la protection contre l'accès public sur les ressources existantes, toutes les autorisations existantes et les nouveaux ajouts de
allUsers
et deallAuthenticatedUsers
sont bloqués. Cela peut affecter vos buckets comme suit :Si une application dépend de
allUsers
et deallAuthenticatedUsers
pour accéder à vos données ou créer des ressources publiques, l'activation de la protection contre l'accès public peut l'endommager. Pour en savoir plus sur l'identification des ressources publiques sur lesquelles d'autres applications peuvent dépendre, développez le contenu suivant :Identifier les ressources publiques
Avant d'appliquer la protection contre l'accès public, nous vous recommandons de dresser l'inventaire de vos ressources publiques pour vous assurer de ne pas interrompre d'autres charges de travail qui dépendent de la publication de vos données. Vous pouvez rechercher des buckets, des objets et des dossiers gérés publics à l'aide des méthodes suivantes:
- Pour identifier les charges de travail susceptibles d'accéder à vos données publiques, configurez des journaux d'utilisation, qui peuvent fournir des informations sur les demandes d'accès aux données envoyées aux ressources publiques.
-
Pour déterminer si un bucket peut être accessible au public, vérifiez les règles IAM du bucket. Les stratégies qui accordent des rôles au compte principal
allUsers
ouallAuthenticatedUsers
rendent le bucket potentiellement accessible au public. Au lieu d'obtenir la stratégie IAM pour des buckets individuels, vous pouvez utiliser inventaire des éléments cloud pour afficher les stratégies de tous les buckets d'un projet, d'un dossier ou d'une organisation.Si votre bucket contient des dossiers gérés, vous pouvez également vérifier les stratégies IAM des dossiers gérés pour identifier ceux qui peuvent être accessibles au public.
- Pour déterminer si des objets individuels peuvent être accessibles au public, vérifiez si des LCA sont associées à l'objet.
Les LCA qui accordent un accès au principal
allUsers
ouallAuthenticatedUsers
rendent l'objet potentiellement accessible au public.
Cloud Audit Logs ne permet pas de suivre les accès aux objets publics. Si les journaux d'accès aux données sont activés lorsque vous appliquez la protection contre l'accès public, vous pouvez constater une augmentation de la génération des journaux, qui est comptabilisée dans votre quota d'ingestion de journaux et peut entraîner des frais pour Cloud Audit Logs. Cette augmentation peut se produire, car un accès précédemment public et non consigné pourrait être associé à des autorisations spécifiques, qui sont consignées.
Les URL signées, qui donnent un accès limité dans le temps à toute personne qui les utilise, ne sont pas affectées par la protection contre l'accès public.
Les projets non associés à une organisation ne peuvent pas utiliser de règles d'administration. Les buckets au sein de ce projet doivent utiliser le paramètre au niveau du bucket.
La protection contre l'accès public présente une cohérence forte pour la lecture après la mise à jour, mais l'application des règles peut prendre jusqu'à 10 minutes.
Une fois l'application forcée effective, vos objets peuvent rester accessibles au public via un cache Internet pendant un certain temps, en fonction du paramètre
Cache-Control
défini sur les objets. Par exemple, si la valeurCache-Control:max-age
d'un objet est définie sur la valeur par défaut de 3 600 secondes, l'objet peut rester dans un cache Internet pendant cette période.
Étape suivante
- Découvrez comment utiliser la protection contre l'accès public.
- En savoir plus sur les règles d'administration.