无服务器:从 SecretsManager 值创建 api 键
Serverless: create api key from SecretsManager value
我有一个将 API 部署到 AWS 的无服务器堆栈。我想使用存储在 Secrets Manager 中的 API 密钥来保护它。我的想法是在 SSM 中获得密钥的值,在部署时拉取它并将其用作我的 API 密钥。
serverless.yml
service: my-app
frameworkVersion: '2'
provider:
name: aws
runtime: nodejs12.x
...
apiKeys:
- name: apikey
value: ${ssm:myapp-api-key}
据我所知,部署的 API 网关密钥应该与 SSM 密钥相同,但是当我查看控制台时,这两个值不同。我忽略了什么?也没有错误消息。
我 运行 前一段时间遇到了同样的问题,我求助于使用 serverless-add-api-key
插件,因为当 Serverless 创建或重用新的 API 密钥时,我无法理解它对于 API 网关。
有了这个插件,你的 serverless.yml
看起来像这样:
service: my-app
frameworkVersion: '2'
plugins:
- serverless-add-api-key
custom:
apiKeys:
- name: apikey
value: ${ssm:myapp-api-key}
functions:
your-function:
runtime: ...
handler: ...
name: ...
events:
- http:
...
private: true
您还可以使用阶段特定的配置:
custom:
apiKeys:
dev:
- name: apikey
value: ${ssm:myapp-api-key}
我有一个将 API 部署到 AWS 的无服务器堆栈。我想使用存储在 Secrets Manager 中的 API 密钥来保护它。我的想法是在 SSM 中获得密钥的值,在部署时拉取它并将其用作我的 API 密钥。
serverless.yml
service: my-app
frameworkVersion: '2'
provider:
name: aws
runtime: nodejs12.x
...
apiKeys:
- name: apikey
value: ${ssm:myapp-api-key}
据我所知,部署的 API 网关密钥应该与 SSM 密钥相同,但是当我查看控制台时,这两个值不同。我忽略了什么?也没有错误消息。
我 运行 前一段时间遇到了同样的问题,我求助于使用 serverless-add-api-key
插件,因为当 Serverless 创建或重用新的 API 密钥时,我无法理解它对于 API 网关。
有了这个插件,你的 serverless.yml
看起来像这样:
service: my-app
frameworkVersion: '2'
plugins:
- serverless-add-api-key
custom:
apiKeys:
- name: apikey
value: ${ssm:myapp-api-key}
functions:
your-function:
runtime: ...
handler: ...
name: ...
events:
- http:
...
private: true
您还可以使用阶段特定的配置:
custom:
apiKeys:
dev:
- name: apikey
value: ${ssm:myapp-api-key}