我们正在用新的身份验证机制替换AWS访问密钥和机密
https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/
我们有一个带有配置初始值设定项的rails应用程序,在这里我们使用这些变量,但是部署失败,错误是“找不到密钥”。
Missing :web_identity_token_file parameter or invalid file path provided for Aws::AssumeRoleWebIdentityCredentials provider
我的理解是app在container中初始化,然后部署到pod中,但是变量只有在container被添加到pod中时才可用。
在kubernetes中有没有办法解决这个问题,或者我需要将我的应用程序代码从初始化器中移走,并且只在向aws发出实际请求时才使用它?
注:
编辑
Client.configure do |config|
config.credentials = Aws::AssumeRoleWebIdentityCredentials.new(
client: Aws::STS::Client.new(region: 'us-west-2'),
role_arn: ENV.fetch('AWS_ROLE_ARN'),
web_identity_token_file: ENV.fetch('AWS_WEB_IDENTITY_TOKEN_FILE')
)
秘密.yml
apiVersion: v1
kind: Secret
metadata:
name: "${NAME}-secrets"
namespace: "${NAMESPACE}"
data:
AWS_ROLE_ARN: "${AWS_ROLE_ARN}"
AWS_WEB_IDENTITY_TOKEN_FILE: "${AWS_WEB_IDENTITY_TOKEN_FILE}"