首页 > 解决方案 > 如何使用 Cloudformation 将代码从 aws s3 存储桶安全地提取到 Codecommit 存储库?

问题描述

在 AWS 中,在 Cloudformation 中创建管道堆栈后(使用 YAML 文件),我能够成功地将现有 S3 存储桶中的代码提取到 Codecommit 内的新存储库中。

这很好用,但我希望确保 S3 存储桶本身是私有的而不是公开的,并且需要某种身份验证系统来确保用户从我的 s3 存储桶中正确提取代码,他们需要提供正确的身份验证到cloudformation 以正确填充 Codecommit 存储库。

哪种 AWS 服务最适合我执行此操作?我正在考虑使用带有 Lambda 授权方的 API 网关,但我对其他可能使这更容易的 AWS 服务感兴趣。

标签: amazon-web-servicesamazon-cloudformationaws-api-gatewayaws-codepipeline

解决方案


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 授权方返回凭证。


推荐阅读