不使用 ARM 模板将证书部署到服务结构集群

Deploy a cert to service fabric cluster without using ARM template

我想将客户端证书部署到我已经创建的集群,我的服务将使用该集群向依赖服务发出传出请求,并将该证书添加到我配置的 KeyVault 资源中。我怎样才能将该证书部署到我的 VM 规模集 - 有没有什么方法可以授权我的服务访问该 Keyvault 实例,然后它会自动部署到我的 VM,或者是否有其他一些过程?

如果您需要证书存储在证书存储中,您可以使用 certificate references(重新)将 VM 规模集部署到 Key Vault。

"secrets": [
    {
        "sourceVault": {
            "id": "/subscriptions/{subscriptionid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1"
        },
        "vaultCertificates": [
            {
                "certificateUrl": "https://mykeyvault1.vault.azure.net/secrets/{secretname}/{secret-version}",
                "certificateStore": "certificateStoreName"
            }
        ]
    }
]

确保密钥保管库配置为 allow deployments to access secrets

您还可以使用 MSI or your own Service Principal 从代码访问 Key Vault。我宁愿使用客户端证书(部署到 VM)来进行身份验证。

  • 如果选择 MSI,每个 VM 都有自己的(托管)服务主体,所有这些都需要配置为允许 access to Key Vault data。你需要自己做。

  • 如果您选择将服务主体与 ClientId 和 ClientSecret 一起使用,请确保将服务主体客户端机密保存在 protected configuration 中。 (这也需要证书)确保也为此 SPN 配置访问策略。