如何在`~/.aws/config` 中生成 AWS 配置文件以在 CodeBuild 项目中使用

我的

我正在使用一个名为的工具,该工具dbt的数据库身份验证方法使用 IAM。不幸的是,在构建 CodeBuild 项目时不存在 IAM 配置文件,因为它使用实例配置文件。因此,我无法连接到我的数据库。

参考这个问题,我尝试aws sts get-caller-identity在项目中运行,看看我是否能够得到一些我需要返回的值,但它返回了

botocore.exceptions.ProfileNotFound: The config profile (***) could not be found

有没有人知道如何~/.aws/config在 CodeBuild 项目中生成我自己的

编辑:该工具使用 boto3 在此处生成临时凭证:https : //github.com/fishtown-analytics/dbt/blob/9d00c000720d17c42a4fa08a26b75bd500cc857f/plugins/redshift/dbt/adapters/redshift/connections.py#L23L1

但它似乎无法在 CodeBuild 项目中生成这些凭据。

编辑:

buildspec.yml

version: 0.2

env:
  variables:
    MODELS_REPO: dbt-dev
    PYTHON_VERSION: 3.8
  parameter-store:
    AWS_ENVIRONMENT: "/cloudformation/environment"
    AWS_PROFILE: "/cloudformation/environment"
    CODEARTIFACT_COMPANY: "/codeartifact/company"
    GITHUB_OWNER: "/github/owner"
    GITHUB_PERSONAL_ACCESS_TOKEN: "/secret/github/token"
    GITHUB_USER: "/github/user"

phases:
  install:
    runtime-versions:
        python: "${PYTHON_VERSION}"
    commands:
      - pip install -r projects/${PROJECT_NAME}/requirements.txt
      - ./projects/${PROJECT_NAME}/.aws/phases/install.sh
  pre_build:
    commands:
      - ./projects/${PROJECT_NAME}/.aws/phases/pre_build.sh
  build:
    commands:
      - ./projects/${PROJECT_NAME}/.aws/phases/build.sh
  post_build:
    commands:
      - ./projects/${PROJECT_NAME}/.aws/phases/post_build.sh

cache:
  paths:
    - /root/.cache/pip
    - /root/.cache/pip/**/*
    - ~/.cache/pip
    - ~/.cache/pip/**/*
阿姆什

以下脚本应该适用于您的用例:

apt install jq -y
creds=$(aws sts get-session-token)

AWS_ACCESS_KEY_ID=$(echo $creds | jq '.Credentials.AccessKeyId')
AWS_SECRET_ACCESS_KEY=$(echo $creds | jq '.Credentials.SecretAccessKey')
AWS_SESSION_TOKEN=$(echo $creds | jq '.Credentials.SessionToken')

aws configure --profile $AWS_PROFILE set region "us-east-1"
aws configure --profile $AWS_PROFILE set output "json"
aws configure --profile $AWS_PROFILE set aws_secret_access_key "$AWS_SECRET_ACCESS_KEY"
aws configure --profile $AWS_PROFILE set aws_access_key_id "$AWS_ACCESS_KEY_ID"
aws configure --profile $AWS_PROFILE set aws_session_token "$AWS_SESSION_TOKEN"

您可以根据需要更改区域。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在JWT的配置文件中生成和使用密钥

使用实例配置文件时如何在 AWS CLI 中设置配置文件名称

如何在放大初始化期间配置AWS配置文件的使用情况?

如何使用凭证配置文件登录AWS CLI

如何在〜/ .aws / .credentials和〜/ .aws / .config文件中使用boto3列出本地配置文件?

如何在AWS CodeBuild规范文件中为`parameter-store`使用动态密钥?

如何在Docker中使用动态生成的Nginx配置文件?

如何在配置文件别名中生成随机字符串?

评分配置文件如何在Azure搜索中生成分数?

如何为项目禁用自动生成的配置文件?

aws-encryption-cli:如何在加密期间设置配置文件时使用解密?

如何在lambda代码中使用AWS Custom Authorizer中生成的权限?

如何使用autoconf重新生成配置文件?

从发布配置文件生成项目文件

如何在AWS Client上设置配置文件

Extjs如何在项目中使用配置属性

如何配置持续集成的AWS拉姆达使用AWS的服务AWS-codebuild,codedeploy,cloudformation的java

如何在C#项目中使用LIB文件?

如何在Django项目中使用静态文件?

如何在 CodePipeline 中使用 CloudFormation 部署多个 codeBuild 项目

如何在Liberty配置文件中使用MicroProfile FaultTolerance

如何在配置文件中使用路由助手

如何在Puppet中使用模板作为配置文件

如何在Airflow中使用配置文件

如何在OSRM配置文件中使用外部数据

如何在dockerfile中使用bash配置文件

如何在SSH配置文件中使用变量

如何在 LDAP 的 RabbitMQ 配置文件中使用变量

如何在Android主项目中包含库项目中使用的AAR文件