【问题标题】:AWS, GitHub Action: User is not authorized to perform: sts:AssumeRole on resource(CodePipeline)AWS,GitHub 操作:用户无权执行:sts:AssumeRole on resource(CodePipeline)
【发布时间】:2022-03-09 01:58:01
【问题描述】:

我希望 AWS 专家能提供一些帮助。 我将使用 GitHub Actions 执行 AWS CodePipeline。我正在关注this example,并且我已经为此设置了角色。 但是当我测试它时,出现这样的错误。

“错误:用户:arn:aws:iam:::user/lms-test 无权执行:sts:AssumeRole on resource:arn:aws :codepipeline:us-west-1::lms-test"

为了修复这个错误,我还向当前用户(lms-test)添加了sts:AssumRole,但仍然是同样的错误。 我期待得到有关此问题的解决方案。

感谢您的时间和考虑。

【问题讨论】:

  • 以上示例使用 aws-actions/configure-aws-credentials。给出的示例假定为一个角色。您将针对此角色定义一个信任策略,以允许来自主体服务的操作 sts:AssumeRole:codepipeline.amazonaws.com(或类似)。然后,该角色需要具有适当的权限才能在 CodePipeline 中执行所需的操作。可能上述用户也需要添加sts:AssumeRole权限(资源:'*')
  • 我已经解决了这个问题,我只是确保您的解决方案非常出色。真的,谢谢。
  • 没问题,很高兴你把它整理好了。

标签: amazon-web-services github github-actions


【解决方案1】:

您的受信任政策中缺少某些内容。修改如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::xxxxxxxxxxx:oidc-provider/token.actions.githubusercontent.com"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringEquals": {
                    "token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
                },
                "StringLike": {
                    "token.actions.githubusercontent.com:sub": "repo:[your-org]/[your-repo]:*"
                }
            }
        }
    ]
}

【讨论】:

    猜你喜欢
    • 2014-03-24
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    相关资源
    最近更新 更多