Amazon web services Jenkins管道地形代码中的AWS访问和密钥

Amazon web services Jenkins管道地形代码中的AWS访问和密钥,amazon-web-services,jenkins-pipeline,terraform,devops,terraform-provider-aws,Amazon Web Services,Jenkins Pipeline,Terraform,Devops,Terraform Provider Aws,除了在Terraform代码的variables.tf中传递访问密钥和秘密密钥外,在部署Jenkins管道时,是否有安全可靠的方法将密钥传递给代码?? 管道将经常重新部署,每次都应传递密钥。首先,您需要在主机中存储默认凭据以执行某些awscli。您可以这样做: sh "mkdir -p ~/.aws" sh "cd ~/.aws; rm -rf credentials" sh "cd ~/.aws; cp credentials-default

除了在Terraform代码的variables.tf中传递访问密钥和秘密密钥外,在部署Jenkins管道时,是否有安全可靠的方法将密钥传递给代码??
管道将经常重新部署,每次都应传递密钥。

首先,您需要在主机中存储默认凭据以执行某些awscli。您可以这样做:

sh "mkdir -p ~/.aws"
sh "cd ~/.aws; rm -rf credentials"
sh "cd ~/.aws; cp credentials-default credentials
在AWS IAM部分中,您需要授予默认凭据权限,以通过命令承担所需的角色

aws sts assume-role ... > test.txt
test.txt文件中是具有该会话的临时访问权限和密钥的凭据


关于上述选项,您可以参考此文档:

如果您不想在Jenkins上存储任何aws凭据,最好的方法是在EC2实例上创建Jenkins从属,并将所需的IAM角色附加到该实例。这样,您就不必在Jenkins凭据管理器或Jenkins节点中存储或预定义任何机密id和访问密钥

您可以使用此功能存储密钥。@Ash Blake感谢您的回复。我会调查的。有没有其他方法可以让代码直接从AWS获取密钥?当然,您可以使用jenkins管道中的AWS cli来获取密钥。或者你可以创建一个默认用户并承担部署@Ash Blake的角色。你能详细解释吗?请在回答部分解释,因为它包含代码