Définir des règles d'administration pour Cloud Storage

Cette page vous explique comment définir des règles d'administration spécifiques à Cloud Storage, au niveau du projet ou au-dessus. Cela peut être utile pour gérer les paramètres des buckets au sein de votre organisation. Cloud Storage dispose actuellement de deux règles d'administration. L'une vise à faire respecter les règles de conservation des verrous de bucket et l'autre est destinée à appliquer l'accès uniforme au niveau du bucket.

Définir une contrainte de règle de conservation

Pour exiger que les buckets de votre organisation soient créés avec des règles de conservation appropriées, procédez comme suit.

gcloud

  1. Créez un fichier .json contenant les informations suivantes, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    {
        "constraint": "constraints/storage.retentionPolicySeconds",
        "listPolicy": {
          "allowedValues": [SET_OF_TIMES_IN_SECONDS],
          "inheritFromParent": "[BOOLEAN]"
        }
      }

    Notez que votre contrainte peut être associée à plusieurs valeurs autorisées. Exemple :

    "allowedValues": [ "100", "200", "1000" ]
  2. Exécutez la commande gcloud beta resource-manager org-policies set-policy, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    gcloud beta resource-manager org-policies set-policy [JSON_FILE_NAME].json --[RESOURCE_TYPE]=[RESOURCE_NAME]

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Créez un fichier .json contenant les informations suivantes, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    {
        "constraint": "constraints/storage.retentionPolicySeconds",
        "listPolicy": {
          "allowedValues": [SET_OF_TIMES_IN_SECONDS],
          "inheritFromParent": "[BOOLEAN]"
        }
      }

    Notez que votre contrainte peut être associée à plusieurs valeurs autorisées. Exemple :

    "allowedValues": [ "100", "200", "1000" ]
  3. Utilisez cURL pour appeler l'API JSON avec une requête POST, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://cloudresourcemanager.googleapis.com/v1/[RESOURCE_TYPE]/[RESOURCE_ID]:setOrgPolicy"

Définir une contrainte d'accès uniforme au niveau du bucket

Pour exiger que les buckets de votre organisation soient créés avec l'accès uniforme au niveau du bucket activé et empêcher les buckets existants de désactiver cette configuration, procédez comme suit :

gcloud

  1. Créez un fichier .json contenant les informations suivantes, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    {
        "constraint": "constraints/storage.uniformBucketLevelAccess",
        "booleanPolicy": {
          "enforced": "[BOOLEAN]"
        }
      }

  2. Exécutez la commande gcloud beta resource-manager org-policies set-policy, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    gcloud beta resource-manager org-policies set-policy [JSON_FILE_NAME].json --[RESOURCE_TYPE]=[RESOURCE_NAME]

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Créez un fichier .json contenant les informations suivantes, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    {
        "constraint": "constraints/storage.uniformBucketLevelAccess",
        "booleanPolicy": {
          "enforced": "[BOOLEAN]"
        }
      }
  3. Utilisez cURL pour appeler l'API JSON avec une requête POST, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://cloudresourcemanager.googleapis.com/v1/[RESOURCE_TYPE]/[RESOURCE_ID]:setOrgPolicy"

Désactiver la création de clés HMAC

Pour empêcher la création de clés HMAC pour les comptes de service de votre organisation, procédez comme suit :

gcloud

  1. Créez un fichier .json contenant les informations suivantes, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    {
        "constraint": "constraints/storage.disableServiceAccountHmacKeyCreation",
        "booleanPolicy": {
          "enforced": "[BOOLEAN]"
        }
      }

  2. Exécutez la commande gcloud beta resource-manager org-policies set-policy, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    gcloud beta resource-manager org-policies set-policy [JSON_FILE_NAME].json --[RESOURCE_TYPE]=[RESOURCE_NAME]

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Créez un fichier .json contenant les informations suivantes, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    {
        "constraint": "constraints/storage.disableServiceAccountHmacKeyCreation",
        "booleanPolicy": {
          "enforced": "[BOOLEAN]"
        }
      }
  3. Utilisez cURL pour appeler l'API JSON avec une requête POST, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://cloudresourcemanager.googleapis.com/v1/[RESOURCE_TYPE]/[RESOURCE_ID]:setOrgPolicy"

Supprimer une contrainte de règle d'administration

Pour supprimer une contrainte de règle d'administration existante, procédez comme suit.

gcloud

  1. Exécutez la commande gcloud beta resource-manager org-policies delete, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    gcloud beta resource-manager org-policies delete [CONSTAINT_NAME] --[RESOURCE_TYPE]=[RESOURCE_NAME]

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Créez un fichier .json contenant les informations suivantes, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    {
        "constraint": "[CONSTRAINT_NAME]",
      }
  3. Utilisez cURL pour appeler l'API JSON avec une requête POST, en remplaçant les éléments entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

    curl -X POST --data-binary @[JSON_FILE_NAME].json \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: application/json" \
    "https://cloudresourcemanager.googleapis.com/v1/[RESOURCE_TYPE]/[RESOURCE_ID]:clearOrgPolicy"

Considérations lors de l'utilisation de règles d'administration

  • Vous pouvez appliquer une contrainte à n'importe quelle ressource au niveau du projet ou à un niveau supérieur, y compris aux ressources "Organisation".

  • Les contraintes retentionPolicySeconds et uniformBucketLevelAccess sont appliquées à la création de buckets dans la ressource, ainsi qu'à l'ajout ou à la mise à jour des paramètres correspondants des buckets existants dans la ressource.

  • Vous ne pouvez pas appliquer les contraintes retentionPolicySeconds et uniformBucketLevelAccess rétroactivement à un bucket existant, sauf si le paramètre correspondant a été défini sur ce bucket.

  • Si une ressource possède déjà des clés HMAC lorsque vous activez la contrainte disableServiceAccountHmacKeyCreation, elles continuent d'exister

  • En ce qui concerne les contraintes de règles de conservation, si vous définissez plusieurs contraintes pour différents niveaux de ressources, celles-ci sont appliquées de manière hiérarchique. Par conséquent, nous vous recommandons de définir le champ inheritFromParent sur la valeur true, ce qui garantit l'application des règles des couches supérieures.