在 Azure 容器应用中管理机密

凭借 Azure 容器应用,应用程序可以安全地存储敏感配置值。 在应用程序级别定义机密后,安全值可用于容器应用中的修订版。 此外,可以在缩放规则中引用安全值。 有关通过 Dapr 使用机密的信息,请参阅 Dapr 集成

  • 机密的范围仅限于某一应用程序,在应用程序的任何特定修订之外。
  • 添加、删除或更改机密不会生成新修订。
  • 每种应用程序修订都可以引用一个或多个机密。
  • 多种修订可以引用相同机密。

已更新或删除的机密不会自动影响应用中的现有修订。 如果更新或删除了机密,可以通过以下两种方式之一对更改进行响应:

  1. 部署新修订。
  2. 重启现有修订。

删除机密之前,请部署不再引用旧密码的新修订。 然后停用引用机密的所有修订。

定义机密

机密定义为一组键/值对。 每个机密的值是直接指定的,或指定为对 Azure 密钥保管库中存储的机密的引用。

在容器应用中存储机密值

当你通过门户或不同的命令行选项定义机密时。

  1. Azure 门户中转到你的容器应用。

  2. 在“设置”部分下,选择“机密”。

  3. 选择 添加

  4. 在“添加机密”上下文窗格中输入以下信息:

    • 键:机密的名称
    • 类型:选择“容器应用机密”。
    • 值:机密的值。
  5. 选择“添加” 。

引用密钥保管库中的机密

定义机密时,会创建对 Azure 密钥保管库中存储的机密的引用。 容器应用自动从密钥保管库检索机密值,并使其可用作容器应用中的机密。

若要引用密钥保管库中的机密,必须先在容器应用中启用托管标识,并为该标识授予对密钥保管库机密的访问权限。

若要在容器应用中启用托管标识,请参阅托管标识

若要授予对密钥保管库机密的访问权限,请在密钥保管库中为创建的托管标识创建访问策略。 在此策略上启用“获取”机密权限。

  1. Azure 门户中转到你的容器应用。

  2. 在“设置”部分下,选择“标识”。

  3. 在“系统分配”选项卡中选择“打开”。

  4. 选择“保存”以启用系统分配的托管标识。

  5. 在“设置”部分下,选择“机密”。

  6. 选择 添加

  7. 在“添加机密”上下文窗格中输入以下信息:

    • 键:机密的名称
    • 类型:选择“密钥保管库引用”。
    • 密钥保管库机密 URL:密钥保管库中机密的 URI。
    • 标识:用于从密钥保管库检索机密的标识。
  8. 选择 添加

注意

如果将 UDR 与 Azure 防火墙配合使用,则需要将 AzureKeyVault 服务标记和 login.partner.microsoftonline.cn FQDN 添加到防火墙的允许列表中。 请参阅使用 Azure 防火墙配置 UDR,确定所需的其他服务标记。

密钥保管库机密 URI 和机密轮换

密钥保管库机密 URI 必须采用以下格式之一:

  • https://myvault.vault.azure.cn/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931:引用特定版本的机密。
  • https://myvault.vault.azure.cn/secrets/mysecret:引用最新版本的机密。

如果 URI 中未指定版本,则应用将使用密钥保管库中存在的最新版本。 有更新的版本可用时,应用会在 30 分钟内自动检索最新版本。 在环境变量中引用机密的任何活动修订版都会自动重启,以选取新值。

若要完全控制使用哪个机密版本,请在 URI 中指定版本。

在环境变量中引用机密

定义机密部分中所述,在应用程序级别声明机密后,可以在容器应用中创建新修订时在环境变量中引用这些机密。 当环境变量引用机密时,将使用机密中定义的值进行填充。

示例

下面的示例显示了一个应用程序,该应用程序在应用程序级声明连接字符串。 此连接在容器环境变量和缩放规则中引用。

在容器应用中定义机密后,可以在创建新修订版时在环境变量中引用该机密。

  1. Azure 门户中转到你的容器应用。

  2. 打开“修订版管理”页。

  3. 选择“创建新修订版”。

  4. 在“创建和部署新修订版”页中选择一个容器。

  5. 在“环境变量”部分选择“添加”。

  6. 输入以下信息:

    • 名称:环境变量的名称。
    • 源:选择“引用机密”。
    • 值:选择要引用的机密。
  7. 选择“保存”。

  8. 选择“创建”以创建新修订版。

在卷中装载机密

定义机密部分中所述,在应用程序级别声明机密后,可以在容器应用中创建新修订版时在卷装载中引用这些机密。 在卷中装载机密时,每个机密都将作为文件装载到卷中。 文件名是机密的名称,文件内容则是机密的值。 在卷装载中可以加载所有机密,也可以加载特定机密。

示例

在容器应用中定义机密后,可以在创建新修订版时在卷装载中引用该机密。

  1. Azure 门户中转到你的容器应用。

  2. 打开“修订和副本”页。

  3. 选择“创建新修订版”。

  4. 在“创建和部署新修订版”页面

  5. 选择一个容器并选择“编辑”

  6. 在“卷装载”部分中,展开“机密”部分

  7. 选择“创建新卷”

  8. 输入以下信息:

    • 名称:mysecrets
    • 装载所有机密:已启用

    注意

    如果要加载特定机密,请禁用“装载所有机密”,然后选择要加载的机密

  9. 选择添加

  10. 在“卷名称”下,选择“mysecrets”

  11. 在“装载路径”下,输入“/mnt/secrets”

  12. 选择“保存”。

  13. 选择“创建”以创建具有卷装载的新修订版

后续步骤