ネットワーク制限をかけたストレージアカウントにアクセスする方法
ネットワーク制限をかけたストレージアカウントにアクセスする方法
ストレージアカウントでパブリックを許可していると誰でもアクセスすることが可能になってしまいます。
※もちろんアクセスキーやAD認証などが必要なので、誰でも取得可能ではありません。
そのため、ストレージアカウントのファイアウォール機能を使い許可されたネットワークからでしかアクセスできないようにすることができます。
Storageファイアウォールが有効化されてい状態でのアクセス方法
[ストレージアカウント]-[ネットワーク]からファイアウォール設定画面に遷移します。
ファイアウォール
こちらはオーソドックスなファイアウォール設定です。
許可したいIPを設定して保存することでアクセス可能となるホワイトリスト形式のファイアウォールです。
注意点としてはグローバルIPのみ設定することが可能です。
同一リージョンのVNETに属していないAzureリソースはたとえグローバルIPを付与していてもAzure同一リージョンではプライベートIPを使ってアクセスするためここで許可設定をいれてもアクセスできません。
仮装ネットワーク
こちらはVNET内のサービスエンドポイントを利用して接続するための設定です。
Azure Virtual MachineなどのAzureのリソースはサブネットに属しており、そのサブネットからサービスエンドポイントを用い、Azure内のネットワークでストレージアカウントにアクセスできます。
引用:https://docs.microsoft.com/ja-jp/azure/virtual-network/virtual-network-service-endpoint-policies-overview
システム割り当てマネージド ID
以下、サービスのシステム割り当てマネージドIDを利用してアクセスすることができます。
ここでアクセス許可したいマネージドIDを追加し、マネージドIDに対して必要なアクセス権限を付与することでアクセス可能になります。
※MS公式Docs引用
サービス | リソース プロバイダー名 | 目的 |
---|---|---|
Azure API Management | Microsoft.ApiManagement/service | ポリシーを使用して、API Management サービスが、ファイアウォールの背後にあるストレージ アカウントにアクセスできるようにします。 詳細については、こちらを参照してください。 |
Azure Cache for Redis | Microsoft.Cache/Redis | Azure Cache for Redis からのストレージ アカウントへのアクセスを許可します。 |
Azure Cognitive Search | Microsoft.Search/searchServices | インデックス作成、処理、およびクエリのために、Cognitive Search サービスがストレージ アカウントにアクセスできるようになります。 |
Azure Cognitive Services | Microsoft.CognitiveService/accounts | Cognitive Services がストレージ アカウントにアクセスできるようにします。 詳細については、こちらを参照してください。 |
Azure Container Registry タスク | Microsoft.ContainerRegistry/registries | ACR タスクは、コンテナー イメージを作成するときにストレージアカウントにアクセスできます。 |
Azure Data Factory | Microsoft.DataFactory/factories | ADF ランタイムを使用してストレージ アカウントへのアクセスを許可します。 |
Azure Data Share | Microsoft.DataShare/accounts | Data Share を使用してストレージ アカウントにアクセスできるようになります。 |
Azure DevTest Labs | Microsoft.DevTestLab/labs | DevTest Labs からのストレージ アカウントへのアクセスを許可します。 |
Azure Event Grid | Microsoft.EventGrid/topics | Azure Event Grid を使用してストレージ アカウントへのアクセスを許可します。 |
Azure Healthcare APIs | Microsoft.HealthcareApis/services | Azure Healthcare APIs からのストレージ アカウントへのアクセスを許可します。 |
Azure IoT Central アプリケーション | Microsoft.IoTCentral/IoTApps | Azure IoT Central アプリケーションからのストレージ アカウントへのアクセスを許可します。 |
Azure IoT Hub | Microsoft.Devices/IotHubs | IoT ハブからのデータを BLOB ストレージに書き込むことができます。 詳細情報 |
Azure Logic Apps | Microsoft.Logic/workflows | ロジック アプリがストレージ アカウントにアクセスできるようにします。 詳細については、こちらを参照してください。 |
Azure Machine Learning サービス | Microsoft.MachineLearningServices | 承認された Azure Machine Learning ワークスペースでは、BLOB ストレージに実験の出力、モデル、およびログを書き込み、データを読み取ります。 詳細については、こちらを参照してください。 |
Azure Media Services | Microsoft.Media/mediaservices | Media Services からのストレージ アカウントへのアクセスを許可します。 |
Azure Migrate | Microsoft.Migrate/migrateprojects | Azure Migrate からのストレージ アカウントへのアクセスを許可します。 |
Azure Purview | Microsoft.Purview/accounts | Purview にストレージ アカウントへのアクセスを許可します。 |
Azure Remote Rendering | Microsoft.MixedReality/remoteRenderingAccounts | Remote Rendering からのストレージ アカウントへのアクセスを許可します。 |
Azure Site Recovery | Microsoft.RecoveryServices/vaults | Site Recovery からのストレージ アカウントへのアクセスを許可します。 |
Azure SQL データベース | Microsoft.Sql | ファイアウォールの内側にあるストレージ アカウントへの監査データの書き込みを許可します。 |
Azure Synapse Analytics | Microsoft.Sql | COPY ステートメントまたは PolyBase を使用して (専用プール)、またはサーバーレス プールで openrowset 関数と外部テーブルを使用して、特定の SQL データベースのデータのインポートとエクスポートを行うことを許可します。 詳細については、こちらを参照してください。 |
Azure Stream Analytics | Microsoft.StreamAnalytics | ストリーミング ジョブからのデータを Blob Storage に書き込むことができます。 詳細については、こちらを参照してください。 |
Azure Synapse Analytics | Microsoft.Synapse | ワークスペース Azure Synapse Analytics から Azure Storage のデータにアクセスできるようにします。 |
例外
ストレージアカウントと同じサブスクリプションにある下記リソースは「信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します。」にチェックをいれることでアクセス可能となります。
サービス | リソースプロバイダー |
---|---|
Azure Backup | Microsoft.RecoveryServices |
Azure Data Box | Microsoft.DataBox |
Azure DevTest Labs | Microsoft.DevTestLab |
Azure Event Grid | Microsoft.EventGrid |
Azure Event Hubs | Microsoft.EventHub |
Azure File Sync | Microsoft.StorageSync |
Azure HDInsight | Microsoft.HDInsight |
Azure Import Export | Microsoft.ImportExport |
Azure Monitor | Microsoft.Insights |
Azure のネットワーク | Microsoft.Network Network |
Azure Site Recovery | Microsoft.SiteRecovery |
プライベートエンドポイント
引用:https://docs.microsoft.com/ja-jp/azure/storage/common/storage-private-endpoints
VNET上にプライベートエンドポイントを作成し、プライベートエンドポイントを経由してアクセスすることも可能です。
プライベートエンドポイントの使い道としては社内ネットワークをExpress RouteなどでVNETと繋ぎ、従業員もインターネット経由で直接ストレージアカウントへアクセスするのではなく、プライベートエンドポイントにアクセスすることでインターネットに出ずにストレージアカウントにアクセスすることが可能です。
App ServiceやFunctionsでネットワーク制限されている同一リージョンのストレージアカウントにアクセスする方法
デフォルトでは無理です。
これがけっこうハマるポイントです。
回避策
App ServiceやFunctionsではプラン次第ですが、VNET統合ができます。
VNET統合をした上で仮装ネットワークを追加してあげればネットワーク制限された同一リージョンのストレージアカウントにアクセスすることが可能です。
VNET統合できないプランの場合(Functions 従量課金など)はどう頑張っても無理なので別リージョンにストレージアカウントを作成しましょう。
Author And Source
この問題について(ネットワーク制限をかけたストレージアカウントにアクセスする方法), 我々は、より多くの情報をここで見つけました https://qiita.com/ryuseiarai/items/c0f99ae7ef8e2b4bc161著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .