amazon-web-services - 如何使用 Cloudformation 将代码从 aws s3 存储桶安全地提取到 Codecommit 存储库?
问题描述
在 AWS 中,在 Cloudformation 中创建管道堆栈后(使用 YAML 文件),我能够成功地将现有 S3 存储桶中的代码提取到 Codecommit 内的新存储库中。
这很好用,但我希望确保 S3 存储桶本身是私有的而不是公开的,并且需要某种身份验证系统来确保用户从我的 s3 存储桶中正确提取代码,他们需要提供正确的身份验证到cloudformation 以正确填充 Codecommit 存储库。
哪种 AWS 服务最适合我执行此操作?我正在考虑使用带有 Lambda 授权方的 API 网关,但我对其他可能使这更容易的 AWS 服务感兴趣。
解决方案
AWS Roles
符合你的需要吗?您可以将角色附加到 S3 以允许用户下载代码:
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS: [
"arn:aws:iam::AWS-account-ID:user/user-name-1",
"arn:aws:iam::AWS-account-ID:user/user-name-2",
]
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::YOUR_BUCKET/SOME/PATH"
}
]
}
和/或如果您没有预定义的用户,您可以允许 Lambda 担任此类角色,如此处所述,并通过 API 网关与 Lambda 授权方返回凭证。
推荐阅读
- java - 在Java中循环使用列表的有效方法
- python - Python - 从不同的类调用函数以使用 PyQt 画线错误:“'sip.wrappertype'”
- node.js - 如何读取当前字符串化为“对象承诺”的 JSON 对象
- python - 从python中的dict列表中查找特定值
- reactjs - 如何挂载组件 redux antd jest
- keras - yolov3.cfg 中的 batch 参数和 keras.fit() 中的 batch_size 参数有什么区别?
- javascript - 如何使用单选检查使 div 出现和消失?
- android - java.lang.RuntimeException:非法元数据值:子服务不存在
- arrays - 更新 MongoDB 中数组的特定索引
- dart - 我应该输入类型吗?