[英]Refresh Azure Storage Account Key Periodically using C# SDK
出於安全目的,我想每個月刷新我的存儲帳戶密鑰。 我瀏覽了 Azure 存儲 SDK 但找不到任何具體的方法。
有沒有可用的nuget/sdk? 我對 powershell 腳本也很滿意,但應該能夠通過一些調度程序執行它。
您可以使用 Azure 管理 SDK 和應用程序注冊來執行此操作。
這正是您需要采取的步驟:
1. Go to the Azure portal App Registration here: https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
2.點擊新注冊,注冊一個新的APP:
3.為您的應用程序輸入任何名稱並注冊它
5.復制秘密,我們以后會用到(不要分享或存儲在源代碼管理中!)
6.在 App Registration 頁面上復制 CLIENT ID 和 Tenant ID,如下所示:
7. Go 到門戶上的訂閱並復制您的訂閱 ID
8.現在 go 到您要為其重置密鑰的 blob 帳戶,然后在概覽中單擊 JSON 查看並復制資源 ID :
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);
}
}
}
您可以在此處更改兩個鍵或單個鍵。 您還可以復制生成的密鑰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.