c# - 使用 C# SDK 定期刷新 Azure 存储帐户 key

标签 c# azure azure-storage azure-blob-storage

出于安全目的,我想每月刷新我的存储帐户 key 。我浏览了 Azure 存储 SDK,但找不到任何具体的方法。

有可用的 nuget/sdk 吗?我也擅长使用 powershell 脚本,但应该能够通过一些调度程序来执行它。

最佳答案

您可以使用 Azure 管理 SDK 和应用程序注册来执行此操作。

这正是您需要执行的步骤:

1. 转到 Azure 门户应用程序注册:https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps

2.通过点击新注册来注册新的应用程序:

enter image description here

3.为您的应用程序输入任意名称并注册

4. 在此处为您的应用创建一个新 key : enter image description here

5.复制 key ,我们稍后会使用它(不要共享或存储在源代码管理中!)

6. 在“应用程序注册”页面上,复制客户端 ID 和租户 ID,如下所示: enter image description here

7.转到门户上的订阅并复制您的订阅 ID

8. 现在转到您要重置 key 的 Blob 帐户,在“概览”上单击“JSON View ”并复制资源 ID:

enter image description here enter image description here

8b. 向 Blob 存储帐户授予对新应用的访问权限,您可以通过转到 Blob 存储帐户上的访问控制 (IAM) 并添加新的角色分配来执行此操作。

9.在您的项目上安装以下 nuget 包:

<PackageReference Include="Microsoft.Azure.Management.Storage" Version="22.0.0" />
<PackageReference Include="Microsoft.Azure.Management.Fluent" Version="1.37.1" />

请注意,如果可用,您可以使用更高版本。

10.现在您可以使用此代码重置按键:

using System;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent.Core;

namespace AzureMng
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var creds = SdkContext.AzureCredentialsFactory.FromServicePrincipal(
                "[ENTER CLIENT-ID]", 
                "[ENTER SECRET]",  
                "[ENTER TENANT ID", 
                AzureEnvironment.AzureGlobalCloud);
            var client = Microsoft.Azure.Management.Fluent.Azure.Configure()
                .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
                .Authenticate(creds)
                .WithSubscription("[ENTER YOUR SubscriptionID]");
            
            var account = client.StorageAccounts.GetById(
                "");
            var keys = await account.RegenerateKeyAsync("key1");
            Console.WriteLine(keys.FirstOrDefault().Value);
        }
    }
}

在这里您可以更改两个键或单个键。您还可以复制生成的 key 。

关于c# - 使用 C# SDK 定期刷新 Azure 存储帐户 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67743093/

相关文章:

azure - Windows Azure 部署保留旧版本的 Silverlight 应用程序

azure - Microsoft Azure ServiceBus - 如何进行请求/响应?

azure-storage - 从 Uri 和连接字符串创建 Azure BlobClient

c# - CloudBlobContainer.ListBlobs() - 使用 ToList() 降低交易成本

c# - 在 Razor 中使用 ForEach 扩展

c# - 在ConfigureServices中使用DI?

c# - 识别占位符的正则表达式

c# - 使用来自 WebAPI 的 HttpClient 读取自定义内容类型(例如 StackOverflow)提要

mongodb - 如何引用另一个集合中的数据?

javascript - 按目录获取azure容器blob列表