在运行以下命令时,我在 env 错误中发现了部分凭据。
aws sts 假设-role-with-web-identity --role-arn $AWS_ROLE_ARN --role-session-name build-session --web-identity-token $BITBUCKET_STEP_OIDC_TOKEN --duration-seconds 1000
我在 AWS CLI 和 Python 版本下使用 -
aws-cli/2.2.9 Python/3.8.8 Linux/5.4.92-flatcar exe/x86_64.debian.11 prompt/off
我还在环境变量中设置了 AWS_WEB_IDENTITY_TOKEN_FILE 和 AWS_ROLE_ARN。我仍然收到此错误。我没有配置 aws 凭据~/.aws/credentials
和配置文件~/.aws/config
,因为我使用 Web 身份令牌来生成临时凭据,因此不需要它。
以下是 bitbucket 管道步骤:
- step:
oidc: true
name: Build
image: python:3.7
script:
- export AWS_REGION=us-east-2
- export AWS_ROLE_ARN=arn:aws:iam::XXXXXX:role/bitbucket-pipelines-sso
- export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token
- echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token
- curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.2.9.zip" -o "awscliv2.zip" && unzip awscliv2.zip
- ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
- aws sts assume-role-with-web-identity --role-arn $AWS_ROLE_ARN --role-session-name build-session --web-identity-token $BITBUCKET_STEP_OIDC_TOKEN --duration-seconds 1000 >> irp-cred.txt