amazon-web-services - 是否可以允许多个 AWS CloudFront OAI 访问单个 S3 存储桶?
问题描述
我有一些文档希望在许多网站上托管,其中每个网站都在单独的 CloudFront 分布下。每个 CF 分配都在一个单独的 AWS 账户中,但所有账户都属于一个 AWS 组织。
理想情况下,我想将该文档放入一个帐户中的单个 S3 存储桶中,并让所有 CF 分发将该存储桶视为 S3 来源(例如,一种行为将定义访问/docs/*
以指向该单个存储桶)。这意味着存储桶需要在其存储桶策略中向所有 OAI 授予读取权限(每个 CF 分配一个 OAI)。
OAI 的 ARN 如下所示:arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E2WJXXXXXXXXXX
.
是否可以定义一个策略来为帐户做一些事情aws:PrincipalOrgID
(详见此处:https ://aws.amazon.com/blogs/security/control-access-to-aws-resources-by-using-the- aws-organization-of-iam-principals/),但对于在这些组织账户中定义的 CloudFront OAI?
编辑:我已经尝试按照下面的方式添加Principal
并*
添加PrincipalOrgID
我的组织,但这没有用。
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject*",
"s3:GetBucket*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
],
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "o-myOrgId"
}
}
解决方案
推荐阅读
- asp.net - 未处理的拒绝(错误):无法加载“WebPortal”的设置 - ASP.NET Core React
- javascript - 文件上传器的点击功能
- python - SQL Alchemy 在多对多关系中插入数据
- mocking - 具有 clone() 方法的类的 EasyMock 创建模拟失败
- python - Keras 模型不适用于 ValueError:第 0 层期望 0 权重,但保存的权重有 6 个元素
- c++ - 指向 C++ 中的指针的指针
- html - 我应该使用“名称”还是“ID”作为 HTML 锚点?
- react-native - 用 Jest 反应原生测试
- c++ - 为什么在 Xcode 11.3 Step Over(f6) 中作为 Step Into(f7) 工作?
- julia - 对于 Julia 中的自定义类型,我如何阻止“show”打印其完全限定名称?