Cette page explique comment utiliser des points de terminaison locaux pour accéder à Cloud Storage. En utilisant des points de terminaison locaux, vous vous assurez que vos données au repos restent dans la juridiction afin de satisfaire aux exigences de résidence des données.
Présentation
Les points de terminaison locaux sont des points de terminaison de requêtes qui ne permettent de traiter les requêtes que si la ressource concernée existe dans l'emplacement spécifié par le point de terminaison. Par exemple, lorsque vous utilisez le point de terminaison https://us-central1-storage.googleapis.com pour une requête de suppression de bucket, la requête n'est exécutée que si le bucket se trouve dans US-CENTRAL1.
Contrairement aux points de terminaison mondiaux, avec lesquels les requêtes peuvent être traitées dans un emplacement différent de celui où se trouve la ressource, les points de terminaison locaux garantissent que vos requêtes ne sont traitées que dans l'emplacement spécifié par le point de terminaison, où réside la ressource.
L'utilisation de points de terminaison locaux permet de garantir que :
vos données stockées dans Cloud Storage ne quittent pas l'emplacement spécifié ;
vos données font l'objet d'une terminaison TLS dans la région spécifiée par le point de terminaison lors du transit depuis l'environnement sur site vers Google Cloud.
Lorsque vous utilisez des points de terminaison locaux, vous endossez les responsabilités suivantes :
Pour obtenir des garanties de résidence des données, les requêtes effectuées sur un point de terminaison local doivent provenir du même emplacement que celui spécifié par le point de terminaison. Par exemple, si vous utilisez une machine virtuelle Compute Engine pour envoyer une requête à un bucket résidant dans
US-CENTRAL1via le point de terminaisonus-central1-storage.googleapis.com, la machine virtuelle doit également résider dansUS-CENTRAL1.Les points de terminaison locaux ne doivent être utilisés que pour effectuer des opérations prises en charge. L'exécution d'opérations non prises en charge génère une erreur.
Les points de terminaison locaux prennent en charge le trafic entre l'environnement sur site et Google Cloud via Interconnect ou un VPN, ainsi que le trafic entre les services Google Cloud (par exemple, de BigQuery vers Cloud Storage). Le trafic Internet n'est pas pris en charge.
Opérations prises en charge
Le tableau suivant résume les opérations pouvant ou non être effectuées avec des points de terminaison locaux. En général, les opérations intra-emplacement peuvent être effectuées avec des points de terminaison locaux, contrairement aux opérations inter-emplacements.
Si vous tentez d'effectuer une opération non prise en charge avec des points de terminaison locaux, Cloud Storage renvoie un code d'erreur HTTP 400 avec le message suivant : "Ce point de terminaison n'implémente pas cette opération." Veuillez utiliser le point de terminaison mondial."
| Opération | Mute les données d'objet | Prise en charge avec les points de terminaison locaux |
|---|---|---|
| objects compose | Oui | Oui1 |
| objects delete | Non | Oui1 |
| objects get | Oui | Oui1 |
| objects insert | Oui | Oui1 |
| objects list | Non | Oui1 |
| objects patch | Non | Oui1 |
| objects copy | Oui | Oui4 |
| objects rewrite | Oui | Oui4 |
| buckets insert | Non | Oui2 |
| buckets delete | Non | Oui3 |
| buckets get | Non | Oui2 |
| buckets patch | Non | Oui2 |
| buckets update | Non | Oui2 |
| buckets getIamPolicy | Non | Oui2 |
| buckets setIamPolicy | Non | Oui2 |
| buckets testIamPermissions | Non | Oui2 |
| buckets lockRetentionPolicy | Non | Oui2 |
| buckets BucketAccessControls | Non | Oui2 |
| buckets DefaultObjectAccessControls | Non | Oui2 |
| buckets ObjectAccessControls | Non | Oui2 |
| Opérations de clé HMAC | Non | Non |
| Opérations de compte de service | Non | Non |
| Opérations de notification Pub/Sub | Varie selon l'opération | Non |
| Opérations de notification de modification d'objet | Varie selon l'opération | Non |
| Opérations par lot | Varie selon l'opération | Non |
1 Pour effectuer cette opération avec des points de terminaison locaux, le bucket contenant l'objet concerné doit exister à l'emplacement spécifié par le point de terminaison. Par exemple, une requête de suppression d'objet pour us-central1-storage.googleapis.com ne peut être utilisée que pour supprimer des objets de buckets résidant dans la région US-CENTRAL1. Si vous essayez de supprimer un objet dans un emplacement autre que US-CENTRAL1, l'opération renvoie une erreur NOT_FOUND.
2 Pour effectuer cette opération avec des points de terminaison locaux, le bucket doit exister à l'emplacement spécifié par le point de terminaison. Par exemple, une requête de création de bucket pour us-central1-storage.googleapis.com ne peut être utilisée que pour créer un bucket dans la région US-CENTRAL1. Si vous tentez de créer le bucket dans un emplacement autre que US-CENTRAL1, l'opération renvoie une erreur INVALID_ARGUMENT.
3 Pour effectuer cette opération avec des points de terminaison locaux, le bucket doit exister à l'emplacement spécifié par le point de terminaison. Par exemple, une demande de suppression de bucket pour us-central1-storage.googleapis.com ne peut être utilisée que pour supprimer un bucket dans la région US-CENTRAL1. Si vous essayez de supprimer un bucket dans un emplacement autre que US-CENTRAL1, l'opération renvoie une erreur NOT_FOUND.
4 Pour effectuer cette opération avec des points de terminaison locaux, les buckets source et de destination doivent exister à l'emplacement spécifié par le point de terminaison. Par exemple, vous pouvez utiliser des points de terminaison locaux pour copier un objet d'un bucket à un autre si les deux buckets se trouvent dans le même emplacement. Toutefois, vous ne pouvez pas utiliser de points de terminaison locaux pour copier un objet d'un bucket à un autre si les buckets se trouvent dans des emplacements différents. Si le bucket source ou de destination existe dans un emplacement différent de celui spécifié par le point de terminaison, l'opération renvoie une erreur NOT_FOUND.
Régions prises en charge
Les points de terminaison locaux sont disponibles dans toutes les régions des États-Unis, ainsi que dans l'emplacement multirégional US et dans l'emplacement birégional prédéfini NAM4. Pour en savoir plus sur les régions pouvant être spécifiées, consultez Emplacements des buckets.
Envoyer des requêtes
Console
Consultez Restrictions et limites propres à la réglementation ITAR pour savoir comment effectuer des opérations conformes aux exigences de la réglementation ITAR à l'aide de la console Google Cloud .
Ligne de commande
Pour configurer la Google Cloud CLI afin de l'utiliser avec des points de terminaison locaux, procédez comme suit :
Définissez la propriété
api_endpoint_overrides/storagesur le point de terminaison local que vous souhaitez utiliser :gcloud config set api_endpoint_overrides/storage https://LOCATION-storage.googleapis.com/
Une fois cette propriété définie, vous pouvez utiliser les commandes de gcloud CLI comme à votre habitude.
Vous pouvez également utiliser des points de terminaison locaux pour des commandes individuelles en définissant la variable d'environnement CLOUDSDK_API_ENDPOINT_OVERRIDES_STORAGE dans chaque commande. Exemple :
CLOUDSDK_API_ENDPOINT_OVERRIDES_STORAGE=https://LOCATION-storage.googleapis.com/ gcloud ls gs://my-bucket
Bibliothèques clientes
Les bibliothèques clientes Cloud Storage gèrent automatiquement les points de terminaison des requêtes, mais vous pouvez définir manuellement des points de terminaison locaux. Pour savoir comment définir des points de terminaison locaux, consultez les exemples de code de bibliothèque cliente utilisant des points de terminaison de requêtes.
API REST
API JSON
Lorsque vous envoyez des requêtes à des points de terminaison locaux, utilisez les URI suivants :
Pour les requêtes d'API JSON générales, à l'exclusion des importations d'objets, utilisez le point de terminaison suivant :
https://LOCATION-storage.googleapis.com
Remplacez LOCATION par un emplacement de bucket pris en charge. Exemple :
us-central1.Pour les importations d'objets via l'API JSON, utilisez le point de terminaison suivant :
https://LOCATION-storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o
Remplacez :
LOCATION par un emplacement de bucket pris en charge. Exemple :
us-central1.BUCKET_NAME par le nom du bucket dans lequel vous souhaitez importer un objet. Exemple :
my-example-bucket.
Pour les téléchargements d'objets via l'API JSON, utilisez le point de terminaison suivant :
https://LOCATION-storage.googleapis.com/download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media
Remplacez :
LOCATION par un emplacement de bucket pris en charge. Exemple :
us-central1.BUCKET_NAME par le nom du bucket contenant l'objet que vous souhaitez télécharger. Exemple :
my-example-bucket.OBJECT_NAME par le nom de l'objet que vous souhaitez télécharger. Exemple :
waterfall.png.
Notez que les points de terminaison de l'API JSON ne prennent en charge que les requêtes HTTPS.
API XML
Lorsque vous utilisez l'API XML pour envoyer des requêtes à des points de terminaison locaux, vous pouvez utiliser un point de terminaison hébergé virtuellement ou avec chemin d'accès :
Point de terminaison hébergé virtuellement :
https://BUCKET_NAME.LOCATION-storage.googleapis.com
Point de terminaison avec chemin d'accès :
https://LOCATION-storage.googleapis.com/BUCKET_NAME
Pour les deux types de points de terminaison, remplacez :
LOCATION par un emplacement de bucket pris en charge. Exemple :
us-central1.BUCKET_NAME par un nom de bucket valide. Exemple :
my-example-bucket.
Les points de terminaison de l'API XML prennent en charge le chiffrement SSL, ce qui signifie que vous pouvez utiliser HTTP ou HTTPS. L'utilisation de HTTPS est recommandée, en particulier si vous vous authentifiez auprès de Cloud Storage à l'aide d'OAuth 2.0.
Mettre en forme les requêtes correctement
Pour vous assurer que vos requêtes sont compatibles avec les outils Cloud Storage, procédez comme suit :
Assurez-vous d'encoder correctement les caractères spéciaux qui apparaissent dans le nom d'objet ou la chaîne de requête d'un URI de requête.
Familiarisez-vous avec les notions de dénomination des buckets et les remarques concernant les noms d'objets.
Contraintes connues
Les points de terminaison mTLS ne sont pas pris en charge.
Restreindre l'utilisation des points de terminaison d'API mondiaux
Pour vous aider à imposer l'utilisation de points de terminaison locaux, vous pouvez utiliser la contrainte de règle d'administration constraints/gcp.restrictEndpointUsage afin de bloquer les requêtes envoyées au point de terminaison d'API mondial. Pour en savoir plus, consultez la documentation Restreindre l'utilisation des points de terminaison.