对于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命令有效。我只是想念一件事,但找不到有关如何解决此问题的任何文档。任何帮助将不胜感激。
更新:我将所有内容都切换到了参数存储,并且它的调整很少。我想知道我设置秘密经理做错了什么,但我成功解决了这个问题。我会把它留在这里,以防其他人为此而挣扎。
您用于从机密管理器指定机密的格式看起来有些偏离。这里是文档:https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-syntax。
这些秘密被称为:密钥:secret-id:json-key:version-stage:version-id