如何在GitHub Actions中用aws-actions/configure-aws-credentials@v4配置AWS配置文件
问题场景
我在GitHub Actions的ubuntu-latest运行器上配置AWS凭证,当前Workflow配置如下:
name: AWS Login on: push: branches: "dev" jobs: Deploy: defaults: run: working-directory: ./Infrastructure runs-on: ubuntu-latest environment: dev steps: - name: Checkout uses: actions/checkout@v4 with: ref: dev - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v4 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID}} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY}} aws-region: us-west-2 #profile : "my-profile"
发现aws-actions/configure-aws-credentials@v4不支持输入profile或相关参数来配置指定的AWS配置文件,目前临时解决方案是用bash脚本手动生成:
#!/bin/bash aws configure --profile $AWS_PROFILE set aws_access_key_id $AWS_ACCESS_KEY_ID aws configure --profile $AWS_PROFILE set aws_secret_access_key $AWS_SECRET_ACCESS_KEY aws configure --profile $AWS_PROFILE set region $AWS_REGION aws configure list
想知道是否可以直接通过aws-actions/configure-aws-credentials@v4实现该需求?
解答
aws-actions/configure-aws-credentials@v4没有提供直接配置指定AWS配置文件(profile)的输入参数,无法直接通过该Action完成创建自定义profile的需求。
这个Action的设计逻辑是通过设置环境变量(如AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_REGION),让后续的AWS CLI或SDK调用默认使用这些凭证,它不会修改运行器本地的~/.aws/credentials或~/.aws/config文件来添加自定义profile条目。
如果你的需求是必须生成指定名称的profile(比如后续步骤依赖该profile存在),那么你当前使用bash脚本手动配置的方案是最合适的选择,暂时没有替代的Action参数可以实现这个功能。
如果只是需要让后续命令使用特定凭证,不一定非要生成profile,也可以通过在后续步骤中设置AWS_PROFILE环境变量,或者在调用AWS命令时添加--profile参数,但前提是该profile已经存在(仍需脚本提前创建)。
内容的提问来源于stack exchange,提问作者Jadeja Harshvardhansinh

