1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

セゾン情報システムズAdvent Calendar 2021

Day 25

Azure Private Endpointを使ってExpressRoute(Private Peering)経由でBlob Storageに接続する

Last updated at Posted at 2021-12-24

プライベートエンドポイントと似た機能で、サービスエンドポイントというものがあります。

サービスエンドポイントは、vNetに配置されたAzure VMからPaaSへの通信時に、インターネットに出ずにMicrosoftネットワーク内で閉じたアクセス(ルーティング)が可能です。あくまでもルーティングなので、対象のPaaSにはプライベートIPは付与されません。

プライベートエンドポイントでは、PaaSにvNet内のプライベートIPを割り当てることができるため、オンプレからExpress Route(Private Peering)経由で直接アクセスが可能です。

今回はStorage Accountにプライベートエンドポイント設定を入れて、オンプレからExpress Route(Private Peering)を介してアクセスすることが可能かをみていきます。

前提

  • Express Route(Private Peering)接続されたvNetが存在すること
  • Storage Accountが作成されていること

テスト用ファイルの仕込み

  • テスト用コンテナーと適当なファイルをアップロードしておきます。
    image.png

  • コンテナーのアクセスレベルはプライベートにしておきます。
    image.png

Private Link(プライベートエンドポイント)を作成する

  • Azure Portalの検索バーより「Private Link」を選択します。
    image.png

  • [プライベートエンドポイント]を選択し、[作成]を選択します。
    image.png

  • リソースグループやエンドポイント名を入力します。
    image.png

  • 以下のように設定します。

    • リソースの種類:Microsoft.Storage/storageAccounts

    • リソース:事前に作成したストレージアカウント

    • 対象サブリソース:blob
      image.png

    • Table/DataLakeなどそれぞれサブリソース毎にエンドポイントが必要です。今回はBlobを選択しています。

  • プライベートエンドポイント接続させたい仮想ネットワークとサブネットを選択します。ここは空のサブネットでなくてよいです。今回はExpressRoute(Private Endpoint)の仮想ネットワークを選択します。
    image.png

  • プライベートDNSは有効にしておきます。オンプレから接続する分には使わないのですが、同じ仮想ネットワークからアクセスする場合、プライベートDNSがBlobのプライベートIPを名前解決してくれます。
    image.png

  • ここまで入力してプライベートエンドポイントを作成します。数分でプライベートエンドポイントが作られます。

  • プライベートエンドポイントが作成されたら[DNSの構成]を選択します。
    image.png

  • プライベートIPが振られていることが確認できます。
    image.png

プライベートエンドポイント以外からのアクセス拒否

  • ストレージアカウントの左バーから[ネットワーク]を選択します。
    image.png

  • 許可するアクセス元をプライベートエンドポイントからのみに制限するため、[選択されたネットワーク]を選択し保存します。
    image.png

接続確認

ストレージアクセスキー取得

  • 接続確認にはストレージアクセスキーを使います。ここはSASでもよいです。
  • ストレージアカウントの左バーから[アクセスキー]を選択し、キーをコピーしておきます。
    image.png

Cloud Shellから接続確認

  • まずはパブリックアクセスが不可であることを確認するためにCloud Shellを開きます。
  • 以下コマンドを実行し、BLOB一覧が表示されるか確認します。
az storage blob list -c [Your Storage Blob Container Name] --account-key [Your Storage Access Key] --account-name [Your Storage Account Name]
  • 以下のようなエラーメッセージが出力し、アクセスがブロックされていることが分かります。想定通りです。
The request may be blocked by network rules of storage account. Please check network rule set using 'az storage account show -n accountname --query networkRuleSet'.
If you want to change the default action to apply when no rule matches, please use 'az storage account update'.

自PCから接続確認

  • まずは自PCからの名前解決を確認します。
ping kwhrblobendpointtest.blob.core.windows.net

blob.tyo20prdstr07a.store.core.windows.net [20.60.248.65]に ping を送信しています
  • パブリックIPを引いてきてますね。独自DNSに設定すればよいのですが、今回は環境がないため、hostsで上書きしてみます。
ping kwhrblobendpointtest.blob.core.windows.net

kwhrblobendpointtest.blob.core.windows.net [10.x.x.x]に ping を送信しています
  • プライベートIPを設定しました。
  • それではこの状態でアクセス可能かを確認してみます。Azure CLIで以下コマンドを実行します。
az storage blob list -c [Your Storage Blob Container Name] --account-key [Your Storage Access Key] --account-name [Your Storage Account Name]
  • 今回は問題なくBlob一覧が表示されたはずです。Express Route(Private Peering)経由もしくはプライベートエンドポイント接続先仮想ネットワークからのみアクセスが可能な状態になっています。
  • もしオンプレがProxyを使っている場合は、PCの環境変数NO_PROXYに.blob.core.windows.netを設定してあげればProxyを介さずにExpressRoute経由になります。

以上

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?