当在AWS Sagemaker上部署SKLearn模型时遇到“调用CreateBucket操作时出现访问被拒绝”的问题,可能是由于缺少适当的IAM角色或权限。
解决此问题的步骤如下:
以下是一个创建S3存储桶的示例代码:
import boto3
s3 = boto3.client('s3')
s3.create_bucket(Bucket='your-bucket-name')
以下是一个将IAM角色分配给Sagemaker实例的示例代码:
import boto3
import sagemaker
role_name = 'your-iam-role-name'
instance_type = 'your-instance-type'
iam = boto3.client('iam')
sagemaker_client = boto3.client('sagemaker')
# 创建IAM角色
role = iam.create_role(
RoleName=role_name,
AssumeRolePolicyDocument='your-assume-role-policy-document'
)
# 将适当的权限附加到角色
iam.attach_role_policy(
RoleName=role_name,
PolicyArn='your-policy-arn'
)
# 更新Sagemaker实例角色
sagemaker_client.update_notebook_instance(
NotebookInstanceName='your-notebook-instance-name',
RoleArn=role['Role']['Arn'],
InstanceType=instance_type
)
请确保将your-bucket-name
、your-iam-role-name
、your-instance-type
、your-assume-role-policy-document
和your-policy-arn
替换为适当的值。
通过执行上述步骤,您应该能够解决“调用CreateBucket操作时出现访问被拒绝”的问题,并成功部署SKLearn模型。