はじめに
私は画面に出るのに、他のメンバだと見れないってことが発生したので、問い合わせ内容をメモ。
2023/05/22時点の情報です。
本来ならこちらが表示されるはず
仮想ネットワークのサブネットより、サービスエンドポイントを選択する画面にて。
本来は「Microsoft.Storage
」・「Microsoft.Storage.Global
」のどちらも表示されるはず。
他のメンバは「Microsoft.Storage.Global
」が表示されず、キャッシュクリアやシークレットタブでのアクセスを試みても改善しなかった。
Microsoft.Storage.Global
サービスエンドポイントって?
リージョン間サービス エンドポイントを使用すると、サブネットでは、別のリージョン内のストレージ アカウントを含めて、ストレージ アカウントとの通信にパブリック IP アドレスを使用しなくなります。 代わりに、サブネットからストレージ アカウントへのすべてのトラフィックで、ソース IP としてプライベート IP アドレスが使用されます。
リージョンが異なるストレージアカウントに対し、サービスエンドポイントを使用した特定経路通信を行いたい時に使用する。
問い合わせによって明らかになった原因
以下の Azure RBAC 権限が必要
- アクセス権限:
Microsoft.Network/locations/virtualNetworkAvailableEndpointServices/read
- スコープ: サブスクリプション全体
従って、サブスクリプション全体に閲覧権限を持つユーザーであれば参照可能となる。動作確認も取れた。
調べたところ、こんなような権限みたい。
Microsoft.Network/locations/virtualNetworkAvailableEndpointServices/read
使用可能な仮想ネットワーク エンドポイント サービスの一覧を取得します。
Portalでは見えなくて、サブスクリプションに閲覧者権限をもらえない時のために
az cli
でできないか試してみる。
ただし、自分のユーザはサブスクリプションに作成者の権限を持ってしまっているので、認可の部分でエラーが出るかもしれない。
az network vnet subnet update
を使用したら、サブネットにMicrosoft.Storage.Global
サービスエンドポイントを追加できた。
# 使用できるサービスエンドポイントを確認
$ az network service-endpoint list --location japaneast --output table
Name
------------------------------
Microsoft.Storage
Microsoft.Sql
Microsoft.AzureActiveDirectory
Microsoft.AzureCosmosDB
Microsoft.Web
Microsoft.KeyVault
Microsoft.EventHub
Microsoft.ServiceBus
Microsoft.ContainerRegistry
Microsoft.CognitiveServices
Microsoft.Storage.Global
# Microsoft.Storage.Globalをサブネットに追加
$ az network vnet subnet update --subscription MySubscription -g MyResourceGroup --vnet-name MyVnet --name MySubnet --service-endpoints Microsoft.Storage.Global
{
...略...
"serviceEndpoints": [
{
"locations": [
"*"
],
"provisioningState": "Succeeded",
"service": "Microsoft.Storage.Global"
}
],
...略...
}
参照