使用 C# SDK 定期刷新 Azure 存储帐户密钥
Refresh Azure Storage Account Key Periodically using C# SDK
为了安全起见,我想每个月刷新我的存储帐户密钥。我浏览了 Azure 存储 SDK,但找不到任何特定的方法。
有没有 nuget/sdk 可用的?我也很擅长 powershell 脚本,但应该能够通过一些调度程序执行它。
您可以使用带有应用注册的 Azure 管理 SDK 来执行此操作。
这正是您需要执行的步骤:
1. 在此处转到 Azure 门户应用程序注册:https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
2.点击新建注册新APP:
3. 为您的应用输入任意名称并注册
4. 在此处为您的应用创建一个新密钥:
5.复制秘密,我们稍后会用到它(不要共享或存储在源代码管理中!)
6. 在“应用程序注册”页面上复制客户端 ID 和租户 ID,如下所示:
7. 转到门户上的订阅并复制您的订阅 ID
8. 现在转到要为其重置密钥的 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);
}
}
}
在这里您可以更改两个键或单个键。您也可以复制生成的密钥。
为了安全起见,我想每个月刷新我的存储帐户密钥。我浏览了 Azure 存储 SDK,但找不到任何特定的方法。
有没有 nuget/sdk 可用的?我也很擅长 powershell 脚本,但应该能够通过一些调度程序执行它。
您可以使用带有应用注册的 Azure 管理 SDK 来执行此操作。
这正是您需要执行的步骤:
1. 在此处转到 Azure 门户应用程序注册:https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
2.点击新建注册新APP:
3. 为您的应用输入任意名称并注册
4. 在此处为您的应用创建一个新密钥:
5.复制秘密,我们稍后会用到它(不要共享或存储在源代码管理中!)
6. 在“应用程序注册”页面上复制客户端 ID 和租户 ID,如下所示:
7. 转到门户上的订阅并复制您的订阅 ID
8. 现在转到要为其重置密钥的 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);
}
}
}
在这里您可以更改两个键或单个键。您也可以复制生成的密钥。