Checking access control of bucket in Google Cloud Storage using Python
Start your free 7-days trial now!
Prerequisites
To follow along with this guide, please make sure to have:
created a service account and downloaded the private key (JSON file) for authentication (please check out my detailed guide)
installed the Python client library for Google Cloud Storage:
pip install --upgrade google-cloud-storage
Checking access control of bucket
To check the access control of a bucket in Google Cloud Storage (GCS) using Python, use the bucket's iam_configuration
property:
from google.cloud import storage# Authorize ourselves using the private key of our service accountpath_to_private_key = './gcs-project-354207-099ef6796af6.json'client = storage.Client.from_service_account_json(json_credentials_path=path_to_private_key)bucket = client.get_bucket('example-bucket-skytowner')bucket.iam_configuration
{'uniformBucketLevelAccess': {'enabled': True, 'lockedTime': '2022-09-21T08:20:39.627Z'}, 'publicAccessPrevention': 'inherited', 'bucketPolicyOnly': {'enabled': True, 'lockedTime': '2022-09-21T08:20:39.627Z'}}
Note the following:
make sure to use the method
client.get_bucket(~)
instead ofclient.bucket(~)
sinceget_bucket(~)
will fetch the meta-information (e.g.iam_configuration
property) about the bucket from GCS whilebucket(~)
will not.iam_configuration
is of type dictionary.we can see that the
uniformBucketLevelAccess
is enabled, which means that ACL is disabled for this bucket.the
publicAccessPrevention
is not enforced, meaning we did not manually enable the Public Access Prevention setting for this bucket. Note that if the Public Access Prevention setting was turned on, then this value would equal the string'enforced'
.