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
ouupload-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. Vous pouvez utiliser la contrainte restrictAuthTypes
pour limiter les clés HMAC afin de répondre aux exigences réglementaires ou de renforcer la sécurité de vos données.
La contrainte de liste refuse explicitement des types d'authentification spécifiques tout en autorisant tous les autres. Pour ce faire, vous devez lister les types d'authentification limités dans la clé deniedValues
dans le rules
de la contrainte restrictAuthTypes
. Une erreur se produit si vous essayez de lister les types d'authentification restreints dans la clé allowedValues
.
Vous pouvez restreindre les types d'authentification suivants :
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é.
- Par défaut, l'API XML Cloud Storage autorise l'accès HTTP non chiffré.
- De plus, les redirections
CNAME
n'acceptent que l'accès HTTP non chiffré.
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 :
constraints/gcp.restrictNonCmekServices
: impose de chiffrer les nouveaux objets et les objets réécrits à l'aide de clés de chiffrement gérées par le client, et de nouveaux buckets pour définir une clé Cloud KMS en tant que clé de chiffrement par défaut.constraints/gcp.restrictCmekCryptoKeyProjects
: rejette les requêtes adressées à Cloud Storage si elles incluent une clé de chiffrement gérée par le client et que la clé n'appartient pas à un projet spécifié par la contrainte. De même, rejette les requêtes qui créent ou réécrivent un objet si celui-ci est chiffré par la clé de chiffrement par défaut du bucket et si cette clé n'appartient pas à un projet spécifié par la contrainte.constraints/gcp.restrictTLSVersion
: empêche l'accès à Cloud Storage par les requêtes effectuées à l'aide de TLS (Transport Layer Security) 1.0 ou 1.1.
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
- Découvrez la hiérarchie des ressources qui s'applique aux règles d'administration.
- Pour savoir comment utiliser les contraintes et les règles d'administration dans Google Cloud Console, consultez la page Créer et gérer des règles d'administration.
- Pour savoir comment utiliser les contraintes et les règles d'administration dans gcloud CLI, consultez la page Utiliser des contraintes.
- Apprenez-en plus sur les contraintes personnalisées pour Cloud Storage.
- Consultez la documentation de référence sur l'API Resource Manager pour connaître les méthodes d'API pertinentes, telles que
projects.setOrgPolicy
.