You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过C#代码轮换Azure存储账户的访问密钥?

解答

你提到的Azure.Storage.Blobs、Microsoft.Azure.Cosmos.Table 两类NuGet包仅面向存储服务内部的数据操作场景(如上传Blob、读写表数据),不支持存储账户层面的访问密钥轮换操作。

要通过C#实现存储账户访问密钥轮换,需要使用Azure资源管理维度的官方SDK:Azure.ResourceManager.Storage。

实现步骤
  • 安装依赖NuGet包
    你需要安装两个核心包:
    1. Azure.ResourceManager.Storage:存储账户管理能力的核心SDK
    2. Azure.Identity:用于对接Azure的身份认证体系,适配本地调试、托管身份等多种认证场景
  • C#代码示例
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Storage;
using Azure.ResourceManager.Storage.Models;

// 初始化Azure资源管理客户端
ArmClient armClient = new ArmClient(new DefaultAzureCredential());

// 替换为你实际的订阅ID、资源组名、存储账户名
string subscriptionId = "你的订阅ID";
string resourceGroupName = "你的资源组名";
string storageAccountName = "你的存储账户名";
ResourceIdentifier storageAccountId = StorageAccountResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, storageAccountName);
StorageAccountResource storageAccount = armClient.GetStorageAccountResource(storageAccountId);

// 执行密钥轮换,可根据需求指定轮换key1或key2
StorageAccountKeyList regeneratedKeys = await storageAccount.RegenerateKeyAsync(new StorageAccountRegenerateKeyContent("key1"));

// 可选:输出新生成的密钥信息
foreach (var storageKey in regeneratedKeys.Keys)
{
    Console.WriteLine($"密钥名称:{storageKey.KeyName},新密钥值:{storageKey.Value}");
}
  • 权限说明
    运行代码的身份(本地调试时为你登录的Azure账号,线上运行时为托管身份/服务主体)需要在对应存储账户的IAM配置中被分配「存储账户密钥操作者」或「所有者」角色,否则会触发权限不足报错。

内容的提问来源于stack exchange,提问作者Claus Appel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:45:10