我们遇到了同样的问题,我们通过将这些添加到我们的 DEV 存储桶策略中来找到解决方案:
{
"Sid": "SID",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::[PROD-ACCOUNT-ID]:role/[PROD-GLUE-ROLE]"
},
"Action": [
"s3:Get*",
"s3:Put*",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListBucketVersions",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::[DEV-BUCKET]",
"arn:aws:s3:::[DEV-BUCKET]/*"
]
}
这对 PROD Glue 角色 ([PROD-GLUE-ROLE]) 帐户策略:
{
"Action": [
"s3:Get*",
"s3:List*"
"s3:Put*"
],
"Resource": [
"arn:aws:s3:::[DEV-BUCKET]*"
],
"Effect": "Allow"
}
之后,您应该能够使用您在 PROD 帐户中的 PROD 角色从 DEV 存储桶读取和写入数据:
data_frame = glue_context.create_dynamic_frame_from_options(
connection_type='s3',
connection_options={
'paths':'s3://[DEV-BUCKET]/...'
},
format='json'
)
希望这可以帮助