如何使用Maven和Nexus从CodeBuild正确访问AWS Secrets Manager

问题描述 投票:0回答:1

对于buildspec.yml(通用)

version: 0.2

env:
  secrets-manager:
    User: CodeBuild/Auth:User_Name
    Password: CodeBuild/Auth:Password

  pre_build:
    commands:
      - echo ${User}
      - echo ${Password}

  post_build:
    commands:
      - mvn clean deploy -Dnexus.user=$User -Dnexus.password=$Password

echo命令给了我***,它被掩盖了,所以我认为目前为止还不错。另外,我正在使用适用于AWS Secrets Manager的DefaultEncryptionKey。

在Maven的settings.xml里面<username>${nexus.user}</username><password>${nexus.password}</password>

但是当mvn命令运行时,它返回401授权错误...我将AdministratorAccess添加到了CodeBuild角色中,以防万一,出现相同的401错误。

如果我以明文形式声明变量,则mvn命令有效。我只是想念一件事,但找不到有关如何解决此问题的任何文档。任何帮助将不胜感激。

更新:我将所有内容都切换到了参数存储,并且它的调整很少。我想知道我设置秘密经理做错了什么,但我成功解决了这个问题。我会把它留在这里,以防其他人为此而挣扎。

amazon-web-services maven nexus aws-code-deploy aws-secrets-manager
1个回答
0
投票

您用于从机密管理器指定机密的格式看起来有些偏离。这里是文档:https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax

这些秘密被称为:密钥:secret-id:json-key:version-stage:version-id

© www.soinside.com 2019 - 2024. All rights reserved.