我正在尝试为我的 Github Enterprise 存储库使用部署密钥,以便我可以使用 CodeBuild 项目推送新部署的标签。无论我如何尝试,我都无法让它发挥作用。
我使用如下命令生成密钥:ssh-keygen -t ecdsa -b 521 -f $PATH_TO_SSH_KEY -q -N ""
我将$PATH_TO_SSH_KEYAWS SSM Parameter Store 中的内容作为 SecureString 保存。
我从参数存储中加载此参数到我的 CodeBuild 环境中,而不是加载到我的 buildspec.yml 中。
我将 $PATH_TO_SSH_KEY.pub作为新的部署密钥保存到 github 企业存储库。
我将密钥保存到文件中:printf -- "$GITHUB_PRIVATE_KEY" > ~/.ssh/id_ecdsa
现在,我尝试了两种不同的方法,但都失败了。
将企业站点的指纹保存到known_hosts:ssh-keyscan "$GITHUB_ENTERPRISE_URL" >> ~/.ssh/known_hosts
配置git以使用我的凭据:GIT_SSH_COMMAND="ssh -i ~/.ssh/id_ecdsa" git push --tags
此方法失败并出现错误:
git@<ENTERPRISE_URL>: Permission denied (publickey).
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)
使用 SSH 代理保存密钥并尝试以这种方式克隆:
eval $(ssh-agent) …
我在我的 aws lambda 中使用 javascript,它调用 SSM getParameter,并且 lambda 的执行角色对我想要获取其值的密钥具有适当的权限。
最初,我收到了这个特定的错误:
ERROR AccessDeniedException: User: arn:aws:sts::123456789:assumed-role/my-role/my-lambda is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:123456789:parameter/my/parameter
Run Code Online (Sandbox Code Playgroud)
具体错误是有道理的,因此我更正了我的策略,因为我不小心将 GetParameters 放在了 GetParameters 中。但现在,我收到了这个可疑的错误(请注意末尾的*):
ERROR AccessDeniedException: User: arn:aws:sts::123456789:assumed-role/my-role/my-lambda is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:123456789:*
Run Code Online (Sandbox Code Playgroud)
这个错误对我来说没有任何意义。为什么我需要访问每个参数?我只需要我想要的那个。
这是相关代码:
ERROR AccessDeniedException: User: arn:aws:sts::123456789:assumed-role/my-role/my-lambda is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:123456789:parameter/my/parameter
Run Code Online (Sandbox Code Playgroud)
以及权限策略(在 CloudFormation 模板中创建)
ERROR AccessDeniedException: User: arn:aws:sts::123456789:assumed-role/my-role/my-lambda is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:123456789:*
Run Code Online (Sandbox Code Playgroud)
更改权限策略以匹配错误消息后,我现在遇到这个奇怪的错误:
ERROR ValidationException: Parameter name: can't be …Run Code Online (Sandbox Code Playgroud) javascript amazon-web-services aws-lambda aws-parameter-store