Cette page explique comment utiliser le paramètre de protection contre l'accès public à un bucket et la contrainte de règle d'administration de protection contre l'accès public. La protection contre l'accès public vous permet de limiter l'accès public à vos buckets et objets.
Avant de commencer
Avant d'utiliser la protection contre l'accès public dans Cloud Storage, assurez-vous de disposer du rôle IAM requis et examinez les remarques à prendre en compte pour appliquer la protection contre l'accès public.
Obtenir les rôles requis
Pour gérer la règle d'administration sur la protection contre l'accès public au niveau du projet, du dossier ou de l'organisation, demandez à votre administrateur de vous accorder le rôle d'administrateur des règles d'administration (roles/orgpolicy.policyAdmin
) sur l'organisation. Ce rôle prédéfini contient les autorisations requises pour gérer la protection contre l'accès public au niveau du projet, du dossier ou de l'organisation. Pour en savoir plus sur les autorisations incluses dans ce rôle, consultez les détails sur le rôle Administrateur de l'organisation.
Pour gérer le paramètre de la protection contre l'accès public sur un bucket, demandez à votre administrateur de vous attribuer le rôle d'administrateur de l'espace de stockage (roles/storage.admin
) sur le bucket. Ce rôle contient les autorisations requises pour gérer la protection contre l'accès public sur un bucket. Pour afficher les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
storage.buckets.update
storage.buckets.setIamPolicy
Pour en savoir plus sur les autres autorisations incluses dans le rôle "Administrateur de l'espace de stockage", consultez la section Informations détaillées sur le rôle Administrateur de l'espace de stockage.
Remarques à prendre en compte
Avant de commencer, il est recommandé de veiller à ce qu'il n'y ait aucune rupture de workflow à la suite du blocage de l'accès public. Pour en savoir plus, consultez la section Éléments à prendre en compte lors de l'application sur des ressources existantes.
Utiliser le paramètre de bucket
Cette section explique comment appliquer et supprimer la protection contre l'accès public pour des buckets individuels, et comment vérifier l'état de chaque bucket.
Définir la protection contre l'accès public
Pour modifier le paramètre de protection contre l'accès public pour un bucket individuel, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Dans la liste des buckets, cliquez sur le nom du bucket pour lequel vous souhaitez appliquer ou supprimer la protection contre l'accès public.
Sur la page Informations sur le bucket, cliquez sur l'onglet Autorisations.
Dans la fiche Accès public, cliquez sur Empêcher l'accès public pour appliquer la protection contre l'accès public ou sur Autoriser l'accès public pour la supprimer.
Cliquez sur Confirmer.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande gcloud storage buckets update
avec l'option appropriée :
gcloud storage buckets update gs://BUCKET_NAME FLAG
Où :
BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
FLAG
correspond à--public-access-prevention
pour activer la protection contre l'accès public ou à--no-public-access-prevention
pour la désactiver.
Si l'opération réussit, la réponse se présente comme suit :
Updating gs://my-bucket/... Completed 1
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'exemple suivant applique la prévention de l'accès public sur un bucket :
L'exemple suivant définit la protection contre l'accès public sur inherited
pour un bucket :
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'exemple suivant applique la prévention de l'accès public sur un bucket :
L'exemple suivant définit la protection contre l'accès public sur inherited
pour un bucket :
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'exemple suivant applique la prévention de l'accès public sur un bucket :
L'exemple suivant définit la protection contre l'accès public sur inherited
pour un bucket :
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'exemple suivant applique la prévention de l'accès public sur un bucket :
L'exemple suivant définit la protection contre l'accès public sur inherited
pour un bucket :
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'exemple suivant applique la prévention de l'accès public sur un bucket :
L'exemple suivant définit la protection contre l'accès public sur inherited
pour un bucket :
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'exemple suivant applique la prévention de l'accès public sur un bucket :
L'exemple suivant définit la protection contre l'accès public sur inherited
pour un bucket :
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'exemple suivant applique la prévention de l'accès public sur un bucket :
L'exemple suivant définit la protection contre l'accès public sur inherited
pour un bucket :
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
L'exemple suivant applique la prévention de l'accès public sur un bucket :
L'exemple suivant définit la protection contre l'accès public sur inherited
pour un bucket :
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Créez un fichier JSON contenant les informations suivantes :
{ "iamConfiguration": { "publicAccessPrevention": "STATE", } }
où
<var>STATE</var>
estenforced
ouinherited
.Exécutez
cURL
pour appeler l'API JSON avec une requêtePATCH
Bucket incluant l'élémentfields
souhaité :curl -X PATCH --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/BUCKET_NAME?fields=iamConfiguration"
Où :
JSON_FILE_NAME
est le chemin d'accès au fichier JSON que vous avez créé à l'étape précédente.BUCKET_NAME
correspond au nom du bucket concerné. Exemple :my-bucket
API XML
L'API XML ne peut pas être utilisée pour gérer la protection contre l'accès public. Utilisez plutôt un autre outil Cloud Storage, tel que la console Google Cloud.
Afficher l'état de la protection contre l'accès public
Pour afficher l'état de la protection contre l'accès public d'un bucket individuel, procédez comme suit :
Console
- Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.
Cliquez sur le nom du bucket pour lequel vous souhaitez afficher l'état de la protection contre l'accès public.
Cliquez sur l'onglet Autorisations.
La section Accès public indique l'état de votre bucket.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande gcloud storage buckets describe
avec l'option --format
:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(public_access_prevention)"
Où BUCKET_NAME
correspond au nom du bucket dont vous souhaitez afficher l'état. Exemple :my-bucket
Si l'opération réussit, la réponse se présente comme suit :
public_access_prevention:inherited
Bibliothèques clientes
C++
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C++.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C#
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage C#.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Go.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Java.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Node.js.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage PHP.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Python.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Ruby
Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.
Pour vous authentifier auprès de Cloud Storage, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
API REST
API JSON
Vous devez installer et initialiser gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization
.Vous pouvez également créer un jeton d'accès à l'aide d'OAuth 2.0 Playground et l'inclure dans l'en-tête
Authorization
.Exécutez
cURL
pour appeler l'API JSON avec une requêteGET
Bucket incluant l'élémentfields
souhaité :curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=iamConfiguration"
Où
BUCKET_NAME
est le nom du bucket concerné. Exemple :my-bucket
La réponse est semblable à ceci :
{ "iamConfiguration": { ... "publicAccessPrevention": "FLAG" } }
où
FLAG
estinherited
ouenforced
.
API XML
L'API XML ne peut pas être utilisée pour gérer la protection contre l'accès public. Utilisez plutôt un autre outil Cloud Storage, tel que la console Google Cloud.
Utiliser la règle d'administration
Cette section explique comment appliquer et supprimer la règle d'administration pour la protection contre l'accès public, et comment vérifier l'état de cette règle.
Définir la protection contre l'accès public
Pour définir la protection contre l'accès public au niveau du projet, du dossier ou de l'organisation, procédez comme suit :
Console
Suivez les instructions de la section Créer et gérer des règles d'administration à l'aide de la contrainte storage.publicAccessPrevention
.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande gcloud beta resource-manager org-policies
:
gcloud beta resource-manager org-policies STATE \ constraints/storage.publicAccessPrevention \ --RESOURCE RESOURCE_ID
Où :
STATE
peut avoir les valeurs suivantes :enable-enforce
: appliquer la prévention de l'accès public pour la ressource.disable-enforce
: désactiver la protection contre l'accès public pour la ressource.delete
: supprimer la contrainte de règle d'administration de la ressource, afin que la ressource hérite de la valeur de sa ressource parente.
RESOURCE
est la ressource pour laquelle vous souhaitez définir la protection contre l'accès public. Par exemple,organization
,project
oufolder
.RESOURCE_ID
est l'ID de la ressource. Par exemple,123456789012
pour un ID d'organisation,245321
pour un ID de dossier etmy-pet-project
pour un ID de projet.
Pour en savoir plus, consultez la page Utiliser des contraintes.
Voici un exemple de résultat lorsque vous utilisez disable-enforce
:
etag: BwVJi0OOESU= booleanPolicy: {} constraint: constraints/storage.publicAccessPrevention
Afficher l'état de la protection contre l'accès public
Pour afficher l'état de la protection contre l'accès public au niveau du projet, du dossier ou de l'organisation, procédez comme suit :
Console
Suivez les instructions de la section Créer et gérer des règles d'administration à l'aide de la contrainte storage.publicAccessPrevention
.
Pour savoir comment obtenir des informations détaillées sur les erreurs liées aux opérations Cloud Storage ayant échoué dans la console Google Cloud, consultez la section Dépannage.
Ligne de commande
Exécutez la commande describe --effective
:
gcloud beta resource-manager org-policies describe \ constraints/storage.publicAccessPrevention --effective \ --RESOURCE RESOURCE_ID
Où :
RESOURCE
est la ressource pour laquelle vous souhaitez afficher l'état de la protection contre l'accès public. Par exemple,organization
,project
oufolder
.RESOURCE_ID
est l'ID de la ressource. Par exemple,123456789012
pour un ID d'organisation,245321
pour un ID de dossier etmy-pet-project
pour un ID de projet.
Pour en savoir plus, consultez la page Utiliser des contraintes.