in src/sagemaker_core/helper/session_helper.py [0:0]
def expected_bucket_owner_id_bucket_check(self, bucket_name, s3, expected_bucket_owner_id):
"""Checks if the bucket belongs to a particular owner and throws a Client Error if it is not
Args:
bucket_name (str): Name of the S3 bucket
s3 (str): S3 object from boto session
expected_bucket_owner_id (str): Owner ID string
"""
try:
s3.meta.client.head_bucket(
Bucket=bucket_name, ExpectedBucketOwner=expected_bucket_owner_id
)
except ClientError as e:
error_code = e.response["Error"]["Code"]
message = e.response["Error"]["Message"]
if error_code == "403" and message == "Forbidden":
LOGGER.error(
"Since default_bucket param was not set, SageMaker Python SDK tried to use "
"%s bucket. "
"This bucket cannot be configured to use as it is not owned by Account %s. "
"To unblock it's recommended to use custom default_bucket "
"parameter in sagemaker.Session",
bucket_name,
expected_bucket_owner_id,
)
raise