Contraintes applicables aux règles d'administration pour Cloud Storage

Cette page fournit des informations supplémentaires sur les contraintes liées aux règles d'administration qui s'appliquent à Cloud Storage. Utilisez des contraintes pour appliquer des comportements de bucket et d'objet dans l'ensemble d'un projet ou d'une organisation. Les contraintes liées aux règles d'administration peuvent être des contraintes booléennes ou des contraintes de liste.

Contraintes Cloud Storage

Les contraintes suivantes peuvent être appliquées à une règle d'administration et concernent Cloud Storage :

Appliquer la protection contre l'accès public

Nom de la contrainte : constraints/storage.publicAccessPrevention Type de contrainte : boolean

Lorsque vous appliquez la contrainte publicAccessPrevention d'une ressource, l'accès public est limité pour tous les buckets et objets, nouveaux ou existants, inclus dans cette ressource.

Notez que l'activation ou la désactivation de publicAccessPrevention peut prendre jusqu'à 10 minutes.

Durée de conservation de la suppression réversible

Nom de la contrainte : constraints/storage.softDeletePolicySeconds Type de contrainte : list

Lorsque vous appliquez la contrainte softDeletePolicySeconds, vous spécifiez une ou plusieurs durées dans le cadre de la contrainte. Une fois définie, la règle de suppression réversible du bucket doit inclure l'une des durées spécifiées. La contrainte softDeletePolicySeconds est requise lors de la création d'un bucket et de l'ajout ou de la mise à jour de la durée de conservation de la suppression réversible (softDeletePolicy.retentionDuration) d'un bucket préexistant mais n'affecte pas les buckets préexistants.

Si vous définissez plusieurs contraintes softDeletePolicySeconds pour différents niveaux de ressources, elles sont appliquées de manière hiérarchique. Pour cette raison, il est recommandé de définir le champ inheritFromParent sur true, ce qui garantit que les règles des niveaux supérieurs sont également prises en compte.

Durée de la règle de conservation du bucket en secondes

Nom de la contrainte : constraints/storage.retentionPolicySeconds Type de contrainte : list

Lorsque vous appliquez la contrainte retentionPolicySeconds, vous spécifiez une ou plusieurs durées dans le cadre de la contrainte. Une fois définies, les règles de conservation du bucket doivent inclure l'une des durées spécifiées. La contrainte retentionPolicySeconds est requise lors de la création de buckets et de l'ajout ou de la mise à jour de la durée de conservation d'un bucket préexistant. Elle n'est par ailleurs pas requise pour les buckets préexistants.

Si vous définissez plusieurs contraintes retentionPolicySeconds pour différents niveaux de ressources, elles sont appliquées de manière hiérarchique. Pour cette raison, il est recommandé de définir le champ inheritFromParent sur true, ce qui garantit que les règles des niveaux supérieurs sont également prises en compte.

Exiger un accès uniforme au niveau du bucket

Nom de la contrainte : constraints/storage.uniformBucketLevelAccess Type de contrainte : boolean

Lorsque vous appliquez la contrainte uniformBucketLevelAccess, les nouveaux buckets doivent activer la fonctionnalité d'accès uniforme au niveau du bucket, elle est activée pour les buckets préexistants et ne peut être désactivée. Les buckets préexistants pour lesquels l'accès uniforme au niveau du bucket est désactivé ne sont pas nécessaires à son activation.

Mode de journalisation d'audit détaillé

Nom de la contrainte : constraints/gcp.detailedAuditLoggingMode Type de contrainte : boolean

Lorsque vous appliquez la contrainte detailedAuditLoggingMode, les journaux d'audit Cloud associés aux opérations Cloud Storage contiennent des informations détaillées sur les requêtes et les réponses. Il est recommandé d'utiliser cette contrainte en conjonction avec le verrou de bucket et le verrou de conservation des objets lorsque vous recherchez différentes conformités, telles que les règles SEC 17a-4(f), CFTC 1.31(c)-(d) et FINRA 4511(c).

Les informations consignées incluent les paramètres de requête, les paramètres de chemin d'accès et les paramètres du corps de la requête. Les journaux excluent certaines parties des requêtes et des réponses associées à des informations sensibles. Par exemple, les journaux excluent :

  • Les identifiants, tels que Authorization, X-Goog-Signature ou upload-id ;
  • Les informations sur la clé de chiffrement, par exemple x-goog-encryption-key ;
  • Les données d'objet brutes.

Lorsque vous utilisez cette contrainte, tenez compte des points suivants :

  • Les informations détaillées sur les requêtes et les réponses ne sont pas garanties. Dans de rares cas, des journaux vides peuvent être renvoyés.
  • L'activation de detailedAuditLoggingMode augmente la quantité de données stockées dans les journaux d'audit, ce qui peut affecter votre facturation Cloud Logging pour les journaux d'accès aux données.
  • L'activation ou la désactivation de detailedAuditLoggingMode prend jusqu'à 10 minutes.

  • Les requêtes et les réponses consignées sont enregistrées dans un format générique correspondant aux noms de champ de l'API JSON.

Restreindre les types d'authentification

Nom de la contrainte : constraints/storage.restrictAuthTypes Type de contrainte : list

Lorsque vous appliquez la contrainte restrictAuthTypes, les requêtes d'accès aux ressources Cloud Storage utilisant le type d'authentification restreint échouent, quelle que soit la validité de la requête. Cette contrainte est recommandée lorsque vous devez répondre à des exigences réglementaires ou renforcer la sécurité de vos données.

Les types d'authentification suivants peuvent être restreints :

  • SERVICE_ACCOUNT_HMAC_SIGNED_REQUESTS : restreint les requêtes signées par des clés HMAC de compte de service.

  • USER_ACCOUNT_HMAC_SIGNED_REQUESTS : restreint les requêtes signées par des clés HMAC de compte utilisateur.

  • in:ALL_HMAC_SIGNED_REQUESTS : restreint les requêtes signées par une clé HMAC. Si vous devez répondre à des exigences de souveraineté des données, nous vous recommandons de restreindre toutes les requêtes signées HMAC.

Lorsque vous activez cette contrainte, voici ce qui se produit :

  • Cloud Storage restreint l'accès aux requêtes authentifiées avec le type d'authentification restreint. Les requêtes échouent avec l'erreur 403 Forbidden.

  • Les entités précédemment autorisées à effectuer la requête reçoivent un message d'erreur indiquant que le type d'authentification est désactivé.

  • Si les clés HMAC sont restreintes :

    • Les clés HMAC de type restreint ne peuvent plus être créées ni activées dans la ressource sur laquelle la contrainte est appliquée. Les requêtes de création ou d'activation de clés HMAC échouent avec l'erreur 403 Forbidden.

    • Les clés HMAC existantes restent, mais ne sont plus utilisables. Elles peuvent être désactivées ou supprimées, mais ne peuvent pas être réactivées.

Lorsque vous utilisez la contrainte restrictAuthTypes, tenez compte des ressources existantes qui dépendent de l'authentification HMAC. Par exemple, si vous avez migré depuis Amazon Simple Storage Service (Amazon S3), votre application utilise probablement des clés HMAC pour authentifier les requêtes adressées à Cloud Storage. Vous pouvez utiliser la métrique Cloud Monitoring storage.googleapis.com/authn/authentication_count pour savoir combien de fois les clés HMAC ont été utilisées pour authentifier les requêtes.

Limiter les requêtes HTTP non chiffrées

Nom de la contrainte : constraints/storage.secureHttpTransport Type de contrainte : boolean

Lorsque vous appliquez la contrainte secureHttpTransport, tout accès HTTP non chiffré aux ressources Cloud Storage est refusé.

Autres contraintes

Les contraintes des règles d'administration suivantes s'appliquent plus généralement à Google Cloud, mais sont souvent appliquées au service Cloud Storage :

Autoriser ou refuser des règles d'administration de manière conditionnelle

Les tags permettent d'autoriser ou de refuser des règles d'administration de manière conditionnelle selon qu'un bucket Cloud Storage possède un tag spécifique ou non. Pour obtenir des instructions détaillées, consultez Définir une règle d'administration avec des tags.

Étapes suivantes