使用.NET程序集创建Azure密钥库(Microsoft.Azure.KeyVault)

使用.NET程序集创建Azure密钥库(Microsoft.Azure.KeyVault),azure,azure-keyvault,Azure,Azure Keyvault,我正在编写一个.Net控制台应用程序来创建密钥保管库,但在Microsoft.Azure.KeyVault程序集中找不到允许创建保管库并将服务主体设置为该保管库的类/方法 有人能告诉我可以用来创建vault的程序集/类吗 感谢由于某种原因,客户端SDK中没有这样的功能(或者,至少,通过查看SDK的Github repo上的代码,我也找不到)。 有用于创建/更新密钥vault的选项,因此您可以使用该选项创建密钥vault。或者PowerShell—可以执行,我也尝试过执行—它可以工作,但应该进行测

我正在编写一个.Net控制台应用程序来创建密钥保管库,但在Microsoft.Azure.KeyVault程序集中找不到允许创建保管库并将服务主体设置为该保管库的类/方法

有人能告诉我可以用来创建vault的程序集/类吗


感谢

由于某种原因,客户端SDK中没有这样的功能(或者,至少,通过查看SDK的Github repo上的代码,我也找不到)。
有用于创建/更新密钥vault的选项,因此您可以使用该选项创建密钥vault。或者PowerShell—可以执行,我也尝试过执行—它可以工作,但应该进行测试。

由于某种原因,客户端SDK中没有此类功能(或者,至少,我无法通过查看SDK的Github repo上的代码找到)。
有用于创建/更新密钥vault的选项,因此您可以使用该选项创建密钥vault。或者PowerShell—可以执行,我也尝试过执行—它可以工作,但应该经过测试。

您要查找的类是Microsoft.Azure中的KeyVault管理客户端。管理.KeyVault命名空间。这是在可以从NuGet获得的管理KeyVault部件中定义的

代码的主要部分如下所示。但是,请注意,我已经缩写了一些内容(属性、订阅凭据等),您需要进一步定义和初始化这些内容。如果您想看到完整的解决方案,请查看中的示例,尤其是项目中的示例

//要在其中创建vault的资源组。
常量字符串resourceGroupName=“Vault资源组”;
//要创建的vault的名称。
常量字符串vaultName=“web-app-01-vault”;
//定义密钥和机密的访问策略(缩写仅用于说明…)
var accessPolicy=新的AccessPolicyEntry
{
应用程序ID=sp,
PermissionsToKeys=新字符串[]{“所有”},
PermissionsToSecrets=新字符串[]{“备份”、“创建”、“删除”}//,仅举几个例子
};
//定义vault特性(缩写仅用于说明…)
VaultProperties vaultProps=新的VaultProperties()
{
EnabledForTemplateDeployment=true,
AccessPolicys=新列表()
{
访问策略
}
};
//初始化“创建参数”以在“美国西部”中创建vault
VaultCreateOrUpdateParameters vaultParams=新的VaultCreateOrUpdateParameters(vaultProps,“westus”);
//初始化管理客户端的实例
//注意:需要初始化从SubscriptionCloudCredentials派生的Cred
KeyVaultManagementClient mgmtClient=新的KeyVaultManagementClient(creds);
//创建vault
mgmtClient.Vaults.createOrUpdateSync(resourceGroupName、vaultName、vaultParams);

您要查找的类是Microsoft.Azure.Management.KeyVault命名空间中的KeyVault管理客户端。这是在可以从NuGet获得的管理KeyVault部件中定义的

代码的主要部分如下所示。但是,请注意,我已经缩写了一些内容(属性、订阅凭据等),您需要进一步定义和初始化这些内容。如果您想看到完整的解决方案,请查看中的示例,尤其是项目中的示例

//要在其中创建vault的资源组。
常量字符串resourceGroupName=“Vault资源组”;
//要创建的vault的名称。
常量字符串vaultName=“web-app-01-vault”;
//定义密钥和机密的访问策略(缩写仅用于说明…)
var accessPolicy=新的AccessPolicyEntry
{
应用程序ID=sp,
PermissionsToKeys=新字符串[]{“所有”},
PermissionsToSecrets=新字符串[]{“备份”、“创建”、“删除”}//,仅举几个例子
};
//定义vault特性(缩写仅用于说明…)
VaultProperties vaultProps=新的VaultProperties()
{
EnabledForTemplateDeployment=true,
AccessPolicys=新列表()
{
访问策略
}
};
//初始化“创建参数”以在“美国西部”中创建vault
VaultCreateOrUpdateParameters vaultParams=新的VaultCreateOrUpdateParameters(vaultProps,“westus”);
//初始化管理客户端的实例
//注意:需要初始化从SubscriptionCloudCredentials派生的Cred
KeyVaultManagementClient mgmtClient=新的KeyVaultManagementClient(creds);
//创建vault
mgmtClient.Vaults.createOrUpdateSync(resourceGroupName、vaultName、vaultParams);

谢谢@Rick。我可以使用Thank@Rick创建/更新Vault。我可以使用创建/更新Vault
        // The resource group to create the vault in.
        const string resourceGroupName = "Vaults-Resource-Group";

        // The name of the vault to create.
        const string vaultName = "web-app-01-vault";

        // Define access policies to keys and secrets (abbreviated just to illustrate...)
        var accessPolicy = new AccessPolicyEntry
        {
            ApplicationId = sp, 
            PermissionsToKeys = new string[] { "all" }, 
            PermissionsToSecrets = new string[] { "backup", "create", "delete" } //etc.  just to name a few
        };

        // Define vault properties (abbreviated just to illustrate...)
        VaultProperties vaultProps = new VaultProperties()
        {
            EnabledForTemplateDeployment = true,
            AccessPolicies = new List<AccessPolicyEntry>()
            {
                accessPolicy
            }
        };

        // Initialize 'create parameters' to create the vault in "West US"
        VaultCreateOrUpdateParameters vaultParams = new VaultCreateOrUpdateParameters(vaultProps, "westus");

        // Initialize an instance to the mgmt client
        // NOTE: Need to initialize creds derived from SubscriptionCloudCredentials
        KeyVaultManagementClient mgmtClient = new KeyVaultManagementClient(creds);

        // Create the vault
        mgmtClient.Vaults.CreateOrUpdateAsync(resourceGroupName, vaultName, vaultParams);