我想编写初始化REX-Ray docker插件的cloud-init脚本(在其配置中使用AWS凭据的服务)。 我考虑过以下方法。但是,这些方法有一些缺点。
cloud-init脚本中的硬编码访问密钥/密钥。
问题:这不安全。
创建IAM角色,然后从实例元数据中引用访问密钥,密钥。
问题:访问密钥将在特定时间段内到期。 所以我需要重新启动REX-Ray守护程序进程,这会导致服务暂时不可用。
请告诉我哪个是更好的方式来引用访问密钥/密钥,或者其他方式(如果存在)。
提前致谢。
答案 0 :(得分:1)
您可以使用以下身份验证方法
环境变量
在环境环境中导出访问密钥和密钥,如下所示:
$ export AWS_ACCESS_KEY_ID="anaccesskey"
$ export AWS_SECRET_ACCESS_KEY="asecretkey"
共享凭据文件
您可以使用AWS凭据文件指定凭据。 Linux和OS X上的默认位置是$ HOME / .aws / credentials,或者"%USERPROFILE%.aws \ credentials"对于Windows用户。如果terraform无法内联或在环境中检测凭证,Terraform将检查此位置
您可以选择通过提供shared_credentials_file属性在配置中指定其他位置
provider "aws" {
region = "us-west-2"
shared_credentials_file = "/Users/tf_user/.aws/creds"
profile = "customprofile"
}
答案 1 :(得分:1)
docker插件应自动获取凭据。你不需要做任何事情。不要为AWS凭证设置任何环境变量。
vector
/ AWS CLI
将自动从元数据服务器获取凭据。