使用 Fluent 限制对 Azure KeyVault 的访问

问题描述

我需要在创建 Key Vault 时限制对它的访问。我正在通过 Fluent sdk 创建,我可以在其中创建 keyvault 并定义标签和资源组。

注意:使用 powershell 我可以使用以下命令执行操作:Add-AzkeyvaultNetworkRule 但使用 Fluent 我不能

这里是我如何创建 keyvault:

        var azureClient = await GetAzureClientWithSubscription();

        var rVault = await azureClient.Vaults
            .Define(kvName)
            .WithRegion(Region.BrazilSouth)
            .WithExistingResourceGroup(kvRG)
            .DefineAccesspolicy()
            .ForObjectId(_settings.ObjectId)
            .AllowSecretPermissions(SecretPermissions.Get)
            .AllowSecretPermissions(SecretPermissions.List)
            .AllowSecretPermissions(SecretPermissions.Set)
            .Attach()
            .WithTags(tags)
            .CreateAsync();

解决方法

这是一个已报告给 SDK 团队的已知问题,您可以查看 the issue here。虽然不是那么优雅,但您可以在创建密钥保管库后调用 this REST API 设置 networkAcls

或者只是通过 key vault ARM templatefluent SDK 创建一个密钥保管库。

如果您还有其他问题,请告诉我。