gpt4 book ai didi

amazon-web-services - 无法通过 Bitbucket 管道的 OIDC 连接在 AWS 上获取 'branchName'

转载 作者:行者123 更新时间:2023-12-05 05:58:51 25 4
gpt4 key购买 nike

我正在使用 bitbucket 管道,并希望通过 bitbucket 管道在 AWS 上进行部署。我正在使用 OIDC 连接。我想提出一个条件,即部署必须只发生在“主”分支上。在我的 IAM 角色中,我为分支添加了以下条件:

"StringEquals"

{

"api.bitbucket.org/2.0/workspaces/<workspace>/pipelines-config/identity/oidc:branchName": "main"

}

在 AWS 上添加此条件后,bitbucket 管道无法连接到 AWS。

为什么在 AWS IAM 上不满足此条件的任何建议。或者任何安全的方式来做到这一点。

最佳答案

不幸的是,AWS allows only a set of claims 被用于信任策略(即 audsub)。下面的配置将允许 yyyyyyy 工作区下的任何存储库承担 bitbucket-oidc 角色。

访问控制政策文件(您的 IAM 角色的信任关系):

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::xxxxxxx:oidc-provider/api.bitbucket.org/2.0/workspaces/yyyyyyy/pipelines-config/identity/oidc"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"api.bitbucket.org/2.0/workspaces/yyyyyyy/pipelines-config/identity/oidc:aud": "ari:cloud:bitbucket::workspace/zzzzzz"
}
}
}
]
}

bitbucket-pipelines.yml:

image: amazon/aws-cli

pipelines:
branches:
main:
- step:
name: Test OpenID Connect provider with AWS
oidc: true
script:
- export AWS_REGION=eu-central-1
- export AWS_ROLE_ARN=arn:aws:iam::xxxxxxx:role/bitbucket-oidc
- export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token
- echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token
- aws sts get-caller-identity
- aws s3 ls

这里:

  • xxxxxxx :您的 AWS 帐号,例如123456789
  • yyyyyyy : Bitbucket 工作区名称,例如帕维尔-马斯洛夫
  • zzzzzzz :工作区 UUID,例如aa80e976-01e0-4228-99f6-9d6098e147a4
  • bitbucket-oidc:Bitbucket 管道将承担的 IAM 角色

查看完整文档 here


附言您可以进一步限制您的角色,例如仅由您工作区中的某个 repo 假设(但仅此而已,所以没有分支过滤,抱歉):

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::xxxxxxx:oidc-provider/api.bitbucket.org/2.0/workspaces/yyyyyyy/pipelines-config/identity/oidc"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"api.bitbucket.org/2.0/workspaces/yyyyyyy/pipelines-config/identity/oidc:sub": "{1a779bcb-1aa4-430e-8f66-128b5fef4183}:*"
}
}
}
]
}

1a779bcb-1aa4-430e-8f66-128b5fef4183 是您的存储库 UUID。

关于amazon-web-services - 无法通过 Bitbucket 管道的 OIDC 连接在 AWS 上获取 'branchName',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68340954/

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