首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许IAM联邦OIDC提供程序为GitHub操作提供多个条件

允许IAM联邦OIDC提供程序为GitHub操作提供多个条件
EN

Stack Overflow用户
提问于 2022-01-02 09:22:52
回答 1查看 1.5K关注 0票数 7

这个政策问题类似,是否可以在相同的OIDC提供程序策略声明条件下定义多个ForAnyValue:StringLike值?

具体来说,我试图允许来自GitHub动作OIDC的多个主题,允许来自特定存储库或分支的操作对AWS资源运行操作。

sub (subject)字段用于填充索赔

在每个配置AWS凭据操作的条件中使用单个值(即单个回购),按预期工作:

代码语言:javascript
复制
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::12345678901:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringLike": {
          "token.actions.githubusercontent.com:sub": "repo:myorg/myrepo:pull_request"
        }
      }
    }
  ]
}

而使用多个值的ForAnyValue:StringLike则会产生错误Not authorized to perform sts:AssumeRoleWithWebIdentity

代码语言:javascript
复制
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::12345678901:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "ForAnyValue:StringLike": {
          "token.actions.githubusercontent.com:sub": [
            "repo:myorg/myrepo:ref:refs/heads/test-branch-1",
            "repo:myorg/myrepo:ref:refs/heads/test-branch-2"
          ]
        }
      }
    }
  ]
}
EN

回答 1

Stack Overflow用户

发布于 2022-01-02 09:22:52

策略语法正确,github操作工作流不正确,我需要使用on.push.branches并指定分支名称,pull_request的行为不同。

代码语言:javascript
复制
on:
  push:
    branches: [ test-branch-2, test-branch-1 ]

jobs:
  tmp:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read
    steps:
      # Prepare AWS credentials using OIDC provider (uses id-token and contents)
      - uses: aws-actions/configure-aws-credentials@v1
        with:
          role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
          aws-region: eu-west-2
      - run: aws s3 ls s3://my-bucket
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70554870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档