Créer des règles de filtrage des adresses IP de bucket

Cette page explique comment créer des règles de filtrage des adresses IP pour un bucket. En activant le filtrage des adresses IP des buckets, vous pouvez contrôler l'accès à vos buckets en examinant les requêtes entrantes par rapport aux adresses IP spécifiées dans les règles de filtrage des adresses IP des buckets. Pour en savoir plus, consultez la section Filtrage des adresses IP des buckets.

Rôles requis

Pour obtenir les autorisations requises pour créer des règles de filtrage d'adresses IP pour un bucket, demandez à votre administrateur de vous accorder le rôle "Administrateur de l'espace de stockage" (roles/storage.admin) sur le bucket. Ce rôle contient les autorisations requises pour créer des règles de filtrage des adresses IP pour un bucket.

Pour afficher les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

  • storage.buckets.create
  • storage.buckets.setIpFilter

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés. Vous pouvez également obtenir ces autorisations avec d'autres rôles prédéfinis. Pour connaître les rôles et les autorisations associées, consultez la page Rôles IAM pour Cloud Storage.

Pour savoir comment attribuer des rôles aux buckets, consultez la section Utiliser IAM avec des buckets.

Créer des règles de filtrage des adresses IP de bucket

Ligne de commande

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Créez un fichier JSON qui définit les règles pour les requêtes entrantes. Pour obtenir des exemples et des informations sur la structuration des règles de filtrage des adresses IP des buckets, consultez la section Configurations de filtrage des adresses IP des buckets.

    {
      "mode": "Enabled",
      "publicNetworkSource":
        {
        "allowedIpCidrRanges":
          [RANGE_CIDR,
          ...
          ]
        },
      "vpcNetworkSources":
          [
           {"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
            "allowedIpCidrRanges":
              [RANGE_CIDR,
              ...
              ]
           },
          ...
          ]
       }

    Où :

    • mode correspond au mode de configuration du filtrage des adresses IP du bucket. Les valeurs valides sont Enabled et Disabled. Lorsque la valeur est Enabled, des règles de filtrage des adresses IP sont appliquées à un bucket. Toute requête entrante vers le bucket est évaluée par rapport à ces règles. Lorsque ce paramètre est défini sur Disabled, toutes les requêtes entrantes sont autorisées à accéder au bucket.

    • RANGE_CIDR est une plage d'adresses IPv4 ou IPv6 de réseau public autorisée à accéder au bucket. Vous pouvez saisir une ou plusieurs plages d'adresses sous forme de liste.

    • PROJECT_ID correspond à l'ID du projet dans lequel se trouve le réseau cloud privé virtuel (VPC). Pour configurer plusieurs réseaux VPC, vous devez spécifier le projet dans lequel se trouve chaque réseau.

    • NETWORK_NAME correspond au nom du réseau VPC autorisé à accéder au bucket. Pour configurer plusieurs réseaux VPC, vous devez spécifier un nom pour chacun d'eux.

  3. Pour créer un bucket avec des règles de filtrage des adresses IP, exécutez la commande gcloud alpha storage buckets create dans votre environnement de développement:

    gcloud alpha storage buckets create gs://BUCKET_NAME --ip-filter-file=IP_FILTER_CONFIG_FILE

    Où :

    • BUCKET_NAME correspond au nom que vous souhaitez attribuer au bucket, ce nom étant soumis à des exigences de dénomination. Par exemple, my-bucket.
    • IP_FILTER_CONFIG_FILE est le fichier JSON qui définit les règles pour les requêtes entrantes.

API REST

API JSON

  1. Vous devez installer et initialiser gcloud CLI, ce qui vous permet de générer un jeton d'accès pour l'en-tête Authorization.

  2. Créez un fichier JSON contenant les paramètres du bucket, qui doit inclure les champs de configuration name et ipFilter du bucket. Pour obtenir des exemples et des informations sur la structuration des règles de filtrage des adresses IP des buckets, consultez la section Configurations de filtrage des adresses IP des buckets.

    {
      "name": "BUCKET_NAME"
      "ipFilter": {
        "mode": "Enabled",
        "publicNetworkSource":
          {
            "allowedIpCidrRanges":
              [RANGE_CIDR,
                ...
              ]
              },
              "vpcNetworkSources":
              [
              {"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
                "allowedIpCidrRanges":
                [RANGE_CIDR,
                  ...
                ]
              },
              ...
              ]
            }
           }
          

    Où :

    • mode est l'état de la configuration du filtre IP. Les valeurs valides sont Enabled et Disabled. Lorsque la valeur est Enabled, des règles de filtrage des adresses IP sont appliquées à un bucket, et toutes les requêtes entrantes vers ce bucket sont évaluées par rapport à ces règles. Lorsque la valeur est Disabled, toutes les requêtes entrantes peuvent accéder au bucket et à ses données sans aucune évaluation si vous disposez des autorisations IAM requises. Pour activer de manière sécurisée les règles de filtrage des adresses IP des buckets, commencez par configurer vos règles avec mode défini sur Disabled afin de pouvoir ajouter et ajuster des règles sans bloquer immédiatement les requêtes. Une fois que vous avez vérifié que vos règles sont correctement définies, remplacez mode par Enabled pour activer le filtrage des adresses IP des buckets.

    • RANGE_CIDR est une plage d'adresses IPv4 ou IPv6 de réseau public autorisée à accéder au bucket. Vous pouvez saisir une ou plusieurs plages d'adresses sous forme de liste.

    • PROJECT_ID correspond à l'ID du projet dans lequel se trouve le réseau VPC. Pour configurer plusieurs réseaux VPC, vous devez spécifier le projet dans lequel se trouve chaque réseau.

    • NETWORK_NAME correspond au nom du réseau VPC autorisé à accéder au bucket. Pour configurer plusieurs réseaux VPC, vous devez spécifier un nom pour chacun d'eux.

  3. Exécutez cURL pour appeler l'API JSON avec une requête POST bucket:

    curl -X POST --data-binary @JSON_FILE_NAME \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     "https://storage.googleapis.com/storage/v1/b?project=PROJECT_IDENTIFIER&projection=full"

    Où :

    • JSON_FILE_NAME est le nom du fichier JSON contenant les paramètres du bucket.
    • PROJECT_IDENTIFIER correspond à l'ID ou au numéro du projet auquel le bucket est associé. Exemple : my-project.

Configurations de filtrage des adresses IP des buckets

Cette section fournit des exemples de configurations de fichiers JSON de filtrage des adresses IP de bucket pour contrôler l'accès à vos buckets Cloud Storage. Vous pouvez accorder l'accès aux requêtes entrantes à l'aide de l'un des exemples suivants:

  • Toute adresse IP publique (IPv4 ou IPv6):

    La configuration suivante accorde l'accès à n'importe quelle adresse IPv4 ou IPv6 publique, mais bloque le trafic provenant de n'importe quel VPC:

    {
    "ipFilterConfig": {
      "mode": "Enabled"
      "publicNetworkSource": {
        "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"]
      }
    }
    }
  • Plages d'adresses IP publiques spécifiques:

    • L'exemple de configuration suivant accorde l'accès à la plage d'adresses IPv4 publiques 192.0.2.0/24, mais bloque le trafic provenant de n'importe quel VPC:

      {
      "ipFilterConfig": {
        "mode": "Enabled"
        "publicNetworkSource": {
          "allowedIpCidrRanges": ["192.0.2.0/24"]
        }
      }
      }
    • L'exemple de configuration suivant accorde l'accès à la plage d'adresses IPv6 publiques 2001:db8::/32, mais bloque le trafic provenant de n'importe quel VPC:

      {
      "ipFilterConfig": {
        "mode": "Enabled"
        "publicNetworkSource": {
          "allowedIpCidrRanges": ["2001:db8::/32"]
        }
      }
      }
  • Réseaux VPC: les configurations suivantes vous permettent d'accorder l'accès aux ressources de votre réseau VPC. Vous pouvez accorder l'accès à toutes les adresses IP du VPC ou à des plages d'adresses IP spécifiques du VPC. Dans chacun de ces exemples, PROJECT_ID correspond à l'ID du projet dans lequel se trouve le réseau VPC, et NETWORK_NAME au nom du réseau VPC autorisé à accéder au bucket.

    • L'exemple de configuration suivant accorde l'accès à une requête provenant de n'importe quelle adresse IPv4 ou IPv6 provenant d'un VPC spécifique et bloque le trafic provenant d'une adresse IP publique:

      {
      "ipFilterConfig": {
        "mode": "Enabled"
        "vpcNetworkSources": [
            {
                "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
                "allowedIpCidrRanges": ["0.0.0.0/0", "::/0"]
            },
        ]
      }
      }
    • L'exemple de configuration suivant n'autorise l'accès qu'à une requête provenant d'un VPC associé à une VM avec une adresse IPv4 externe comme 192.0.2.0/24 et bloque le trafic provenant d'une adresse IP publique:

      {
      "ipFilterConfig": {
        "mode": "Enabled"
      "vpcNetworkSources": [
            {
                "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
                "allowedIpCidrRanges": ["192.0.2.0/24"]
            },
        ]
      }
      }
    • L'exemple de configuration suivant n'autorise l'accès qu'à une requête provenant d'un VPC avec une plage de sous-réseau IPv4 interne associée à une VM sans adresse IP externe et bloque le trafic provenant d'une adresse IP publique:

      {
      "ipFilterConfig": {
        "mode": "Enabled"
      "vpcNetworkSources": [
            {
                "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
                "allowedIpCidrRanges": ["IP_ADDRESS"]
            },
        ]
      }
      }

      IP_ADDRESS est une plage de sous-réseau IPv4 interne.

    • L'exemple de configuration suivant n'autorise l'accès qu'à une requête provenant d'un VPC avec une plage de sous-réseau IPv4 et IPv6 à double pile associée à une VM avec une plage d'adresses IPv6 externe comme 2001:db8::/32 et bloque le trafic provenant d'une adresse IP publique:

      {
      "ipFilterConfig": {
        "mode": "Enabled"
      "vpcNetworkSources": [
            {
                "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
                "allowedIpCidrRanges": ["2001:db8::/32"]
            },
        ]
      }
      }

Étape suivante

Faites l'essai

Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de Cloud Storage en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.

Profiter d'un essai gratuit de Cloud Storage