vr0*_*00n 4 amazon-s3 amazon-iam aws-glue
我需要使用 AWS Glue (Account:PROD) 来写入另一个账户 (Account:DEV) 上的 S3 Bucket
根据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]/*"
]
}
Run Code Online (Sandbox Code Playgroud)
这适用于 PROD Glue 角色 ([PROD-GLUE-ROLE]) 帐户策略:
{
"Action": [
"s3:Get*",
"s3:List*"
"s3:Put*"
],
"Resource": [
"arn:aws:s3:::[DEV-BUCKET]*"
],
"Effect": "Allow"
}
Run Code Online (Sandbox Code Playgroud)
之后,您应该能够使用 PROD 帐户中的 PROD 角色从 DEV 存储桶读取数据和向 DEV 存储桶写入数据:
data_frame = glue_context.create_dynamic_frame_from_options(
connection_type='s3',
connection_options={
'paths':'s3://[DEV-BUCKET]/...'
},
format='json'
)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
| 归档时间: |
|
| 查看次数: |
5877 次 |
| 最近记录: |