【问题标题】:Refresh Azure Storage Account Key Periodically using C# SDK使用 C# SDK 定期刷新 Azure 存储帐户密钥
【发布时间】:2021-05-28 17:16:08
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    您可以使用带有应用注册的 Azure 管理 SDK 来执行此操作。

    这正是您需要采取的步骤:

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

    2.点击New Registration注册一个新APP:

    3.为您的应用输入任何名称并注册它

    4. 在此处为您的应用创建一个新密钥:

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

    6. 在应用注册页面上复制客户 ID 和租户 ID,如下所示:

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

    8.现在转到您要为其重置密钥的 blob 帐户,然后在概览中单击 JSON 视图并复制 资源 ID

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

    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);
            }
        }
    }
    

    您可以在此处更改两个键或单个键。您也可以复制生成的密钥。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-16
      • 1970-01-01
      • 2021-05-12
      • 2019-09-17
      • 2017-05-01
      • 2019-01-14
      • 2020-08-22
      • 2018-02-27
      相关资源
      最近更新 更多