【以下的问题经过翻译处理】 我目前正在尝试使用中央账户S3存储桶中打包的组件在租户账户中创建组件。租户账户和中央账户位于同一个AWS组织中。我已经尝试了如下设置以允许租户账户访问S3存储桶:
- 在中央账户S3存储桶上(我不确定主体服务/用户是在测试什么访问权限,所以我随意设置):
{
"Version": "2012-10-17",
"Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "greengrass.amazonaws.com", "iot.amazonaws.com", "credentials.iot.amazonaws.com" ] },
"Action": [ "s3:GetObject", "s3:GetObjectVersion" ],
"Resource": "arn:aws:s3:::MY-CENTRAL-ACCOUNT-BUCKET/"
},
{
"Effect": "Allow",
"Principal": { "AWS": "" },
"Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectTorrent", "s3:GetObjectVersionAcl", "s3:GetObjectAcl" ],
"Resource": "arn:aws:s3:::MY-CENTRAL-ACCOUNT-BUCKET/*",
"Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-abc123def456" } } },
… ] }
- 在租户账户中的
GreengrassV2TokenExchangeRole
上添加了AmazonS3FullAccess
AWS 托管策略(只是为了查看是否可以排除此角色是造成阻碍的原因)
我已验证作为租户账户中的用户,我可以访问S3中的对象,作为租户用户可以进行aws s3 cp
操作(因此存储桶策略似乎没有阻止事物)。
每当我尝试在租户账户中创建组件时,不管是使用控制台还是cli我都会遇到:
Invalid Input: Encountered following errors in Artifacts: {s3://MY-CENTRAL-ACCOUNT-BUCKET/com.example.my-component-name/1.0.0-dev.0/application.zip = Specified artifact resource cannot be accessed}
我是否遗漏了什么?是否有什么不同的service-linked role需要被添加在s3的策略中。
看起来只是在创建greengrass 组建时进行权限访问测试,而不是真实的尝试访问资源。我很确定如果我消费了greengrass-tes 角色,我可以下载相关的artifact的(虽然我还没有完成这一步)