AWS Secrets Manager

有关 AWS Secrets Manager 密钥存储组件的详细信息

组件格式

要设置 AWS Secrets Manager 密钥存储,请创建类型为 secretstores.aws.secretmanager 的组件。有关如何创建和应用密钥存储配置的信息,请参阅此指南。有关使用 Dapr 组件检索和使用密钥的信息,请参阅引用密钥指南。

有关身份验证相关属性的信息,请参阅向 AWS 进行身份验证

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: awssecretmanager
spec:
  type: secretstores.aws.secretmanager
  version: v1
  metadata:
  - name: region
    value: "[aws_region]"
  - name: accessKey
    value: "[aws_access_key]"
  - name: secretKey
    value: "[aws_secret_key]"
  - name: sessionToken
    value: "[aws_session_token]"
  - name: multipleKeyValuesPerSecret
    value: "false"

规范元数据字段

字段必填详情示例
regionYAWS Secrets Manager 实例部署到的特定 AWS 区域"us-east-1"
accessKeyY用于访问此资源的 AWS Access Key"key"
secretKeyY用于访问此资源的 AWS Secret Access Key"secretAccessKey"
sessionTokenN要使用的 AWS 会话令牌"sessionToken"
multipleKeyValuesPerSecretN当设置为 "true" 时,允许在单个密钥中存储多个键值对。默认为 "false""true"

可选的每请求元数据属性

从此密钥存储检索密钥时,可以提供以下可选查询参数

查询参数描述
metadata.version_id给定密钥的版本。
metadata.version_stage给定密钥的版本阶段。

配置每个密钥的多个键值对

multipleKeyValuesPerSecret 标志确定密钥存储是每个密钥呈现单个值还是多个键值对。

每个密钥的单个值

如果 multipleKeyValuesPerSecretfalse(默认),AWS Secrets Manager 将按原样返回密钥值。给定名为 database-credentials 的密钥,其包含以下 JSON 内容:

{
  "username": "admin",
  "password": "secret123",
  "host": "db.example.com"
}

请求此密钥会将整个 JSON 作为单个值返回:

$ curl http://localhost:3500/v1.0/secrets/awssecretmanager/database-credentials
{
  "database-credentials": "{\"username\":\"admin\",\"password\":\"secret123\",\"host\":\"db.example.com\"}"
}

每个密钥的多个键值对

如果 multipleKeyValuesPerSecrettrue,密钥存储会解析存储在 AWS Secrets Manager 中的 JSON 内容,并将其作为多个键值对返回。

从上方请求相同的 database-credentials 密钥时,响应会将 JSON 对象分解为各自的条目,允许将其解析为多个键值对。

$ curl http://localhost:3500/v1.0/secrets/awssecretmanager/database-credentials
{
  "username": "admin",
  "password": "secret123", 
  "host": "db.example.com"
}

创建 AWS Secrets Manager 实例

使用 AWS 文档设置 AWS Secrets Manager:https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html。

相关链接