
この記事の内容
Azureのアプリから、Blobに保存した社内用ファイルを読みたい。「Private Endpointを作ったから、これでもう外からはアクセスできない」と考えていませんか。
プライベートな接続口を用意することと、公開側のアクセスを制限することは別です。 まずは、どこへつなぐか、名前をどのIPへ解決するか、誰にデータを許可するかを分けてみましょう。
Private Endpointは、VNet内のIPを使う接続口
Private Endpointは、VNetのプライベートIPアドレスを使って、Private Linkに対応するサービスへ接続するためのネットワークインターフェイスです。Microsoft Learn・概要
たとえば、VNet内のアプリからAzure StorageのBlobを読む構成を考えます。このとき確認するのは、接続口の有無だけでなく、どのストレージの、どのサービスを対象にしたかです。Blob用とFiles用では対象が異なり、ひとつ作ればストレージの全サービスに使える、とは考えません。Storageの対象サービス
VNetやサブネット自体の役割から整理したい場合は、VNet・サブネット・NSGの違いを先に読むとつながります。
接続口・名前解決・許可を3行に分ける
匿名公開していないBlobを、Microsoft Entra IDで認証するアプリが読む例です。構成を確認するメモを、次の3行に分けます。
| 確認すること | 整理する内容 |
|---|---|
| 接続口 | 対象ストレージとBlob用の接続先。接続承認の状態 |
| 名前解決 | アプリが使う名前が、意図したPrivate EndpointのIPへ解決されるか |
| データの許可 | アプリがどのIDで名乗り、そのIDにどのデータ操作が許可されているか |
接続状態のApprovedは、Private Endpointの接続が承認されたことを表します。それだけで、アプリにBlobの読み取り権限まで付いたことにはなりません。接続承認の状態
同じ名前でも、DNSの解決先が大切
DNSは、接続先の名前をIPアドレスへ対応付ける仕組みです。Private Endpoint経由でつなぐには、利用する環境から、その名前が適切なプライベートIPへ解決される必要があります。DNSの確認点
Storageでは、Private Endpointを使う場合も従来と同じ接続文字列を使い、アプリの接続先を独自に「privatelink」のURLへ置き換えるものではありません。独自DNSを使う構成などでは追加の設計が必要になります。Storageの接続とDNS
「名前が同じだから公開経路」「名前にprivatelinkがあるから設定完了」とは決めず、どの環境から名前を解決するかまで含めて確認します。
公開アクセスと、データの権限は別に確認する
Azure Storageでは、Private Endpointを作成しても、公開エンドポイントへの接続は自動では遮断されません。公開側をどこまで許可するかは、別のアクセス制御として確認が必要です。公開アクセスについての公式説明
また、今回のEntra IDによるBlobアクセスでは、アプリのIDにデータ操作を許可するAzure RBACのロールも必要です。ネットワークの到達と、ファイルを読む許可を一つの判定にまとめないようにしましょう。Blobの認証と認可
ID側の整理は、マネージドIDとアクセス許可の違いにつながります。
設定を変える前に、使う側の構成をメモする
まずは「どのアプリが、どの場所から、どのサービスを、どのIDで利用するか」を一組だけ書いてみてください。そのうえで接続口・DNS・権限と、公開側の許可範囲を照合します。
公開アクセスをいきなり無効にしたり、DNSやロールをまとめて変更したりすると、既存の利用者や運用ツールが接続できなくなるおそれがあります。作成や変更は、必要な利用経路・影響・戻し方を確認したうえで、管理担当者と計画するのが次の段階です。