我需要让AWS Glue(Account:PROD)写入另一个账户(Account:DEV)上的S3存储桶
根据http://docs.aws.amazon.com/glue/latest/dg/access-control-overview.html
其他服务(例如Amazon S3)也支持基于资源的权限策略。例如,您可以将策略附加到S3存储桶以管理对该存储桶的访问权限。AWS Glue不支持基于资源的策略。
...这意味着我做不到 arn:aws:s3::DEV-Account:S3-Bucket/*
我尝试Trusted entity
使用PROD在DEV帐户上创建一个,并附加了一个策略集以访问DEV帐户上的s3存储桶。
我该怎么办?
我们遇到了同样的问题,并且通过将这些添加到我们的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存储桶读取数据或向DEV存储桶写入数据:
data_frame = glue_context.create_dynamic_frame_from_options(
connection_type='s3',
connection_options={
'paths':'s3://[DEV-BUCKET]/...'
},
format='json'
)
希望这可以帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句