當我嘗試使用 sagemaker 創建設備佇列時,我遇到了 AWS 問題:
import boto3
sagemaker_client = boto3.client('sagemaker', region_name=AWS_REGION)
sagemaker_client.create_device_fleet(
DeviceFleetName=device_fleet_name,
RoleArn=iot_role_arn,
OutputConfig={
'S3OutputLocation': s3_device_fleet_output
}
)
它引發以下例外:
ClientError:呼叫 CreateDeviceFleet 操作時發生錯誤 (ValidationException):帳戶 ID <my-account-id> 對存盤桶沒有所有權:<bucket-name>
我不明白,因為我創建了存盤桶,所以我應該是所有者。我還沒有找到如何檢查或更改存盤桶所有權。
我嘗試如下更改存盤桶策略,但沒有幫助。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Principal": {
"AWS": "arn:aws:iam::<id>:user/<user>"
},
"Effect": "Allow",
"Action": "*",
"Resource": [
"arn:aws:s3:::<bucket-name>",
"arn:aws:s3:::<bucket-name>/*"
]
}
]
}
我也嘗試使用 sagemaker 的 GUI,但由于同樣的原因失敗(ValidationException,帳戶 ID <my-account-id> 對存盤桶沒有所有權:<bucket-name>)。
uj5u.com熱心網友回復:
此存盤桶策略使其起作用:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<account-id>:role/<iot-role>"
},
"Action": "*",
"Resource": [
"arn:aws:s3:::<bucket-name>",
"arn:aws:s3:::<bucket-name>/*"
]
}
]
}
我仍然沒有完全理解它,因為該角色對 s3 存盤桶具有完全訪問權限,所以我不知道為什么編輯存盤桶的策略會改變一些東西,但它確實有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/409002.html
標籤:
上一篇:從AWSS3流式傳輸大檔案
