密钥管理是应用程序安全的关键部分,应认真对待。
本地密钥定义在 worspace/secrets
目录中,该目录已从版本控制中排除(参见 .gitignore
)。其内容应与密码的安全级别同等对待。
生产环境密钥由 AWS Secrets Manager 管理。
如果您缺少 secrets 目录,请复制 workspace/example_secrets
开发密钥
本地运行的应用程序可以通过 yaml
文件读取密钥,例如:
dev_fastapi = FastApi(
...
# 从 secrets/dev_app_secrets.yml 读取密钥
secrets_file=ws_settings.ws_root.joinpath("workspace/secrets/dev_app_secrets.yml"),
)
生产密钥
AWS Secrets
用于管理生产环境密钥,这些密钥由生产环境应用程序读取。
# -*- 生产环境应用程序的密钥
prd_secret = SecretsManager(
...
# 从 workspace/secrets/prd_app_secrets.yml 创建密钥
secret_files=[
ws_settings.ws_root.joinpath("workspace/secrets/prd_app_secrets.yml")
],
)
# -*- 生产环境数据库的密钥
prd_db_secret = SecretsManager(
...
# 从 workspace/secrets/prd_db_secrets.yml 创建密钥
secret_files=[ws_settings.ws_root.joinpath("workspace/secrets/prd_db_secrets.yml")],
)
在生产环境应用程序中使用以下方式读取密钥:
prd_fastapi = FastApi(
...
aws_secrets=[prd_secret],
...
)
生产环境资源也可以通过 yaml 文件读取密钥,但我们强烈建议使用 AWS Secrets。
Responses are generated using AI and may contain mistakes.