gpt4 book ai didi

amazon-web-services - AWS CodePipeline - 权限不足无法访问工件错误

转载 作者:行者123 更新时间:2023-12-04 14:21:37 25 4
gpt4 key购买 nike

尝试创建和运行从 Github 提取、构建和部署到 EC2 实例的 AWS CodePipeline。流水线如下:

源 (Github) -> 构建 (AWS CodeBuild) -> 部署 (AWS CodeDeploy)

源代码和构建步骤都成功了。但是,部署失败始终给出以下错误:


权限不足无法使用位于 Amazon S3 工件存储桶“codepipeline-us-east-1-[redacted]”中的 Amazon S3 对象键“[redacted]-2nd-test-pip/BuildArtif/IbiHzen”访问工件。提供的角色没有足够的权限。


以下是 CodeBuild 服务角色策略的 IAM 策略:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Resource": [
"arn:aws:logs:us-east-1:362490217134:log-group:/aws/codebuild/[Redacted]-Build-Project",
"arn:aws:logs:us-east-1:362490217134:log-group:/aws/codebuild/[Redacted]-Build-Project:*"
],
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
]
},
{
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-us-east-1-*"
],
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion"
]
},
{
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-us-east-1-[Redacted]/*"
],
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion"
]
}
]
}

管道向导创建的 CodePipeline 服务角色已分配 S3 完全访问权限:

            "Action": [
"elasticbeanstalk:*",
"ec2:*",
"elasticloadbalancing:*",
"autoscaling:*",
"cloudwatch:*",
"s3:*",
"sns:*",
"cloudformation:*",
"rds:*",
"sqs:*",
"ecs:*"
],
"Resource": "*",
"Effect": "Allow"
},

我已多次确认管道部署步骤中引用的工件与构建步骤创建的工件匹配。

如果我查看引用的路径,则没有具有该名称的目录或 zip 文件(不确定哪个应该存在,但也不存在)。此外,在构建过程中会生成一个 zip 文件,但它从未被命名为部署步骤所期望的名称。

我也进入了构建项目并尝试使用其他工件配置进行构建,但在通过 CodePipeline 运行构建时它们似乎被忽略了。

免责声明:我在互联网上的此处和其他地方看到过类似的问题,但每个问题都涉及 ECS 或其他与我不同的情况。谢谢你的帮助

最佳答案

该问题与角色/策略无关。如前所述,S3 存储桶中不存在预期的 zip 文件。这是由于构建规范中指定的工件文件路径无效。更正后,将创建 zip 文件,并且部署不会再因该错误而失败。令我感到奇怪的是,CodePipeline 允许构建报告为成功完成,而无需验证作为工件创建并传递给部署步骤的文件实际上是否已创建。

关于amazon-web-services - AWS CodePipeline - 权限不足无法访问工件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54119347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com