在 AWS 中,在 Cloudformation 中创建管道堆栈(使用 YAML 文件(时,我能够成功地将代码从现有 S3 存储桶拉取到 Codecommit 中的新存储库中。
这非常有效,但我希望确保 S3 存储桶本身是私有的而不是公共的,并且需要某种身份验证系统来确保用户从我的 s3 存储桶中正确提取代码,他们需要在 cloudformation 中提供正确的身份验证,以便它正确填充 Codecommit 存储库。
哪种 AWS 服务最适合我执行此操作?我正在考虑将 API 网关与 Lambda 授权方一起使用,但我对其他可能使此操作更容易的 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 代入此类角色(如此处所述(,并通过具有 Lambda 授权方的 API 网关返回凭证。