3
2

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.

【Azure Blob Storage】 異なる Azure Entra ID(旧Azure AD) テナント間でのオブジェクトレプリケーションを検証してみた

Last updated at Posted at 2023-10-16

Azure Blob Storageを使う中で、ファイルの共有やバックアップ等の目的で異なるAzure Entra ID(旧Azure AD)テナントに紐付くサブスクリプションのAzure Blob Storageにオブジェクトを転送したいといった場面があるかと思います。そういった場合に、オブジェクト レプリケーションの機能を利用することで、マイクロソフトのバックボーンネットワーク経由でセキュアに目的を達成することができるのですが、同じAzure Entra IDテナント間での設定手順と異なり、レプリケーションルールを記載したjsonファイルの作成や、テナント間でのjsonファイルの連携が必要になるため、検証もかねて構築手順を整理してみようと思います。

オブジェクト レプリケーションの機能の概要については以下公開情報を参照ください。
https://learn.microsoft.com/ja-jp/azure/storage/blobs/object-replication-overview

構成図

image.png

ソース側ストレージアカウントの作成

ソース側のサブスクリプションでストレージアカウントを作成します。
Azure Portalからストレージアカウントを選択し「+作成」をクリックします
image.png

各パラメータについて、環境に合わせて設定をしますが、以下のパラメータについては必須で設定する必要があります。

詳細設定
・BLOBストレージのクロステナントレプリケーションを許可する
image.png

データ保護
・BLOBのバージョン管理を有効にする
・BLOBの変更フィードを有効にする
image.png

今回はストレージアカウント「sourceblobstorage2023」を作成しました。

ソース側BLOBコンテナーの作成

ソース側のストレージアカウントにBLOBコンテナーを作成します。

Azure Portalから作成したストレージアカウントにアクセスします。
左ペインから【データストレージ】-【コンテナー】を選択後、「+ コンテナー」をクリックします。
image.png

ソースコンテナーの名前を入力し、「作成」をクリックします。

image.png
image.png

今回はコンテナー「source」を作成しました。

宛先側ストレージアカウントの作成

宛先側のサブスクリプションでストレージアカウントを作成します。
Azure portalからストレージアカウントを選択し「+作成」をクリックします。
image.png

各パラメータについて、環境に合わせて設定をしますが、以下のパラメータについては必須で設定する必要があります。

詳細設定
・BLOBストレージのクロステナントレプリケーションを許可する
image.png

データ保護
・BLOBのバージョン管理を有効にする
image.png

今回はストレージアカウント「destblobstorage2023」を作成しました。

宛先側BLOBコンテナーの作成

宛先側のストレージアカウントにBLOBコンテナーを作成します。

Azure Portalから作成したストレージアカウントにアクセスします。
左ペインから【データストレージ】-【コンテナー】を選択後、「+ コンテナー」をクリックします。

image.png

宛先コンテナーの名前を入力し、「作成」をクリックします。

image.png
image.png

今回はコンテナー「dest」を作成しました。

宛先側オブジェクト レプリケーション設定

blob storageについて作成ができたので、次にオブジェクト レプリケーションの設定をします。

以下のjsonファイルを作成します。

{
  "properties": {
    "policyId": "default",
    "sourceAccount": "/subscriptions/<ソース側サブスクリプションID>/resourceGroups/<リソースグループ名>/providers/Microsoft.Storage/storageAccounts/sourceblobstorage2023",
    "destinationAccount": "/subscriptions/<ソース側サブスクリプションID>/resourceGroups/<リソースグループ名>/providers/Microsoft.Storage/storageAccounts/destblobstorage2023",
    "rules": [
      {
        "ruleId": "",
        "sourceContainer": "source",
        "destinationContainer": "dest"
      }
    ]
  }
}

※レプリ―ケーションのルールにフィルターを追加したい場合は"rules"に"filters"の項目を追加することで設定できます。
例:2023年9月12日0時(日本時間)より後に作成されたファイルをコピーする場合

  "rules": [
     {
       "ruleId": "",
       "sourceContainer": "source",
       "destinationContainer": "dest",
       "filters": {
         "minCreationTime": "2023-09-11T15:00:00Z"
       }
     }
   ]

作成したjsonファイルを利用してレプリケーション設定を作成します。

宛先側のストレージアカウント「destblobstorage2023」にAzure Portalからアクセスし、
左ペインから【データ管理】-【オブジェクト レプリケーション】を選択後します。
image.png
レプリケーション規則のアップロードを選択後、作成したjsonファイルをアップロードします。
image.png
設定内容について、問題ないことを確認して、「アップロード」をクリックします。
image.png

アップロードが完了すると、オブジェクト レプリケーションの「その他のアカウント」タブにレプリケーション規則が作成されているので、レプリケーション規則をダウンロードします。
※jsonファイルがダウンロードされます。
image.png

ソース側オブジェクト レプリケーション設定

宛先側のストレージアカウント「sorceblobstorage2023」にAzure Portalからアクセスし、
左ペインから【データ管理】-【オブジェクト レプリケーション】を選択後します。
image.png
レプリケーション規則のアップロードを選択後、宛先側レプリケーション設定でダウンロードしたjsonファイルをアップロードします。
image.png
設定内容について、問題ないことを確認して、「アップロード」をクリックします。
image.png

アップロードが完了後、オブジェクト レプリケーションの「その他のアカウント」タブにレプリケーション規則が作成されていることを確認します。
image.png

検証

ソース側のBLOB Storageにテキストファイルをアップロードしたところ、宛先に連携されていることを確認できました。変更日付を見るとおよそ3分弱で宛先側に連携されていることが確認できます。

ソース側
image.png

宛先側
image.png

おわりに

異なるAzure Entra IDテナント間でのオブジェクト レプリケーションを組むことができました。
途中にも記載しましたが、フィルタールールなども合わせて設定可能のため、本手順を参考にしていただければと思います。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?