引用 AWS Secrets Manager 中的密钥
AWS Secrets Manager 是一项完全托管的服务,你可以将其与 API7 企业版集成,以安全地存储、管理和检索敏感信息,例如 API 密钥、密码和其他类型的凭据。它允许自动轮换密钥,从而降低凭据随时间推移而暴露的风险。
本教程演示了如何将 API7 企业版与 AWS Secrets Manager 集成,使你能够安全地存储和引用消费者凭据和插件配置。
前提条件
- 安装 API7 企业版。
- 在你的网关组中至少有一个网关实例。
- 拥有一个 AWS 账户,以访问 IAM 和 Secrets Manager 模块。
获取 IAM 访问密钥 ID 和 Secret 访问密钥
获取 IAM 用户访问密钥和 Secret 访问密钥,这些密钥将在下一步中配置到 API7 企业版中以访问 AWS Secrets Manager。
备注
请确保相应的权限已正确分配给用户,从而避免因权限不足导致验证失败的情况。
在网关组中新增 Secret 提供商
- 控制台
- ADC
- Ingress Controller
- 从侧边栏选择网关组的Secret 提供商,然后点击新增 Secret 提供商。
- 在对话框中,执行以下操作:
- Secret 提供商 ID ,输入
my-secrets-manager
。 - Secret 管理服务,选择
AWS Secrets Manager
。 - 区域,选择你的 AWS Secrets Manager 服务所在的区域。例如,
us-east-1
。 - 使用上一步中获取的访问密钥和秘密访问密钥填写访问密钥 ID 和Secret 访问密钥字段。
- 点击新增。
- Secret 提供商 ID ,输入
暂不支持。
暂不支持。
引用密钥以创建消费者凭据
消费者凭据中的以下敏感字段可以存储在外部Secret 管理服务(HashiCorp Vault、AWS Secrets Manager 等)中,并在 API7 企业版中引用:
- Key Authentication凭据中的
key
- Basic Authentication凭据中的
password
- JWT 认证凭据中的
secret
、public key
- HMAC 认证凭据中的
secret_key
新增消费者
- 控制台
- ADC
- Ingress Controller
- 从侧边栏选择网关组的消费者。
- 点击新增消费者。
- 在对话框中,执行以下 操作:
- 名称,输入
Alice
。 - 点击新增。
- 名称,输入
adc-consumer.yaml
consumers:
- username: Alice
将配置同步到 API7 企业版:
adc sync -f adc-consumer.yaml
暂不支持。
在 AWS Secrets Manager 中创建密钥
在本节中,你将创建一个密钥来存储用户 alice
的消费者凭据。
- 在控制台中导航到 AWS Secrets Manager 并创建一个密钥。选择 Other type of secret 作为密钥类型,并在键值对中输入密钥名称
alice-key-auth
和值alice-key
。 - 在下一步中,将密钥名称配置为
alice-credentials
,并可选择新增描述。 - 点击下一步查看其余信息并完成密钥创建。你应该会在 AWS Secrets Manager 中看到创建好的密钥。
- 重复创建步骤,使用以下键/值对创建其他消费者凭据:
- Basic Authentication 凭据:
password:alice-password
。 - JWT 认证凭据:
secret:alice-secret
。 - HMAC 认证凭据:
secret-key:alice-secret-key
。
新增 Key Authentication 凭据
- 控制台
- ADC
- Ingress Controller
- 从侧边栏选择网关组的消费者。
- 选择你的目标消费者,例如,
Alice
。 - 凭据选项卡下,点击新增 Key Authentication 凭据。
- 在对话框中,执行以下操作:
- 名称,输入
primary-key
。 - Key,选择从 Secret 提供商引用,然后输入
$secret://aws/my-secrets-manager/alice-credentias/alice-key-auth
。 - 点击新增。
- 名称,输入
备注
所有密钥引用都以 $secret://
开头。aws
是 Secret 提供商,my-secrets-manager
是Secret 提供商 ID,alice-credentials
是在 AWS Secrets Manager 控制台上 Secret 的名称,alice-key-auth
是在 AWS Secrets Manager 控制台中 Key 的名称。
adc-consumer.yaml
consumers:
- username: Alice
credentials:
- name: primary-key
type: key-auth
config:
key: `$secret://aws/my-secrets-manager/alice-credentias/alice-key-auth`
将配置同步到 API7 企业版:
adc sync -f adc-consumer.yaml
暂不支持。
新增 Basic Authentication 凭据
- 控制台
- ADC
- Ingress Controller
- 从侧边栏选择网关组的消费者。
- 选择你的目标消费者,例如,
Alice
。 - 凭据选项卡下,点击Basic Authentication选项卡,然后点击新增Basic Authentication凭据。
- 在对话框中,执行以下操作:
- 名称,输入
primary-basic
。 - 用户名,输入
alice
。 - 密码,选择从Secret 提供商引用,然后输入
$secret://aws/my-secrets-manager/alice-credentias/password
。 - 点击新增。
- 名称,输入
备注
所有密钥引用都以 $secret://
开头。aws
是Secret 管理服务,my-secrets-manager
是Secret 提供商 ID。
adc-consumer.yaml
consumers:
- username: Alice
credentials:
- name: primary-basic
type: basic-auth
config:
username: alice
password: $secret://aws/my-secrets-manager/alice-credentias/password`
将配置同步到 API7 企业版:
adc sync -f adc-consumer.yaml
尚不支持。