「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Azureのデータ・ストア]] * 目次 [#m2699ff0] #contents *概要 [#w2672b00] Azureのストレージ *ストレージの種類 [#n763d7de] **Blob [#w947118f] -エクサバイト単位の高いスケーラビリティを持つ~ 非構造化データ用オブジェクト ストレージ -エンドポイント:https://<storage-account>.blob.core.windows.net -[[ブロック Blob>#g0d70ad4]] と [[追加 Blob>#mdbf59f9]]、[[ページ Blob>#ia336c65]]の3種類がある。 ***コンテナ [#o68aa604] BLOB のセットを整理する論理的な入れ物。 ***ブロック Blob [#g0d70ad4] -大量のデータを効率的にアップロードするための最適化 -ブロックで構成され、それぞれがブロック ID で識別 -ブロック BLOB には、最大 50,000 個のブロックを含められる。 -各ブロックは、許可される最大サイズまで、異なるサイズにできる。 ***追加 Blob [#mdbf59f9] -ブロックで構成され、追加操作用に最適化 -変更は追加ブロック操作を介した末尾への追加のみ。 -ブロックの更新または削除はサポートされない。 -追加 BLOB ではブロックの ID は公開されない。 ***ページ Blob [#ia336c65] -ランダムな読み書き操作用に最適化 -512 バイトのページのコレクション -作成するには、初期化し、最大サイズを指定。 -VHDファイルをアップロードして[[Disk>#b3652e6e]]として使用する場合。 **Table [#f7fa6f63] -大規模な半構造化データセットを使用できる NoSQL KVS(キー/値ストア) -エンドポイント:https://<storage-account>.table.core.windows.net **Queue [#ge178d0f] -大容量のクラウド サービス向けの永続Queue -エンドポイント:https://<storage-account>.queue.core.windows.net **File [#v4ca71d7] -[[SMB>ネットワークの基礎編#j38a4dc1]]プロトコルを介してアクセスできる、管理されたファイル共有 -エンドポイント:https://<storage-account>.file.core.windows.net **[[Disk>Azureのディスク ストレージ]] [#b3652e6e] **[[Azure Data Lake]] [#l96bb73e] -[[Blob>#w947118f]]をベースに構築された、ビッグ データ分析専用の一連の機能 -エンドポイント:https://<storage-account>.dfs.core.windows.net *ストレージ・アカウント [#t36c3007] **概要 [#u33ccbd4] -Azure Storage データ オブジェクトの~ 格納およびアクセスのための一意の名前空間を提供 -以下の[[オプション>#jd544d7e]]と[[タイプ>#qca1308e]]を組合せて選択できる。 **オプション [#jd544d7e] ***汎用ストレージ・アカウント [#p63b7b9c] -サービス:[[Blob>#w947118f]]、[[Table>#f7fa6f63]]、[[Queue>#ge178d0f]]、[[File>#v4ca71d7]]、[[Data Lake Storage>#l96bb73e]] -GPv1アカウント(汎用v1) --アクセス層を選択する機能がなく、~ すべてがホット・ストレージ層扱いになる。 --冗長オプション:[[LRS>#q3d73577]]、[[ZRS>#kf2c295e]]、[[GRS>#y1b6854f]] -GPv2アカウント(汎用v2) --GPv1にホット/クール/アーカイブのアクセス層とストレージ・イベントなどを追加 --冗長オプション:[[LRS>#q3d73577]]、[[ZRS>#kf2c295e]]、[[GRS>#y1b6854f]]、[[GZRS>#c3d778b5]]、[[RA-GRS>#e7ea30a6]]、[[RA-GZRS>#v153361d]] -アクセス層 |#|層|説明|h |1|ホット・アクセス層|頻繁にアクセスされるような普通のデータ向け| |2|クール・アクセス層|30日以上更新されないデータ向け| |3|アーカイブ・アクセス層|180日以上更新されないデータ向け(Blob単体にのみ適用)。| ***BlockStorage アカウント [#r0e01420] -従来の [[BLOB>#w947118f]] 専用ストレージ アカウント。 -サービス:[[Blob>#w947118f]](ブロック BLOB と追加 BLOB のみ) -冗長オプション:[[LRS>#q3d73577]]、[[ZRS>#kf2c295e]]、[[GRS>#y1b6854f]] ***BlockBlobStorage アカウント [#i5fb0862] -Premium パフォーマンス特性を持つストレージ・アカウント。 -サービス:[[Blob>#w947118f]](ブロック BLOB と追加 BLOB のみ) -冗長オプション:[[LRS>#q3d73577]]、[[ZRS>#kf2c295e]] ***FileStorage アカウント [#dba66f6a] Azure File Storage / Azure Filesとも呼ばれる。 -Premium パフォーマンス特性を持つストレージ・アカウント。 -サービス:[[File>#v4ca71d7]] -冗長オプション:[[LRS>#q3d73577]]、[[ZRS>#kf2c295e]] **タイプ [#qca1308e] ***Standard / Premium [#lb14497c] -Standard --磁気媒体(HDD)を使ってデータが保存される。 --あらゆるタイプのデータに使用できる。 ---ストレージのパフォーマンス変動の影響を受けにくい。 ---開発/テスト、アクセク頻度の少ないワークロード -Premium --ハイパフォーマンスのストレージ。 --SSD を使ってデータが保存される。 ***[[ディスクの場合>Azureのディスク ストレージ#s68ff9a2]] [#g41975b8] **推奨の組合せ [#i80d1744] ***Standard GPv2 [#e60884af] -サービス:[[Blob>#w947118f]]、[[Table>#f7fa6f63]]、[[Queue>#ge178d0f]]、[[File>#v4ca71d7]]、[[Data Lake Storage>#l96bb73e]] -冗長オプション:[[LRS>#q3d73577]]、[[ZRS>#kf2c295e]]、[[GRS>#y1b6854f]]、[[GZRS>#c3d778b5]]、[[RA-GRS>#e7ea30a6]]、[[RA-GZRS>#v153361d]] ***Premium ブロック BLOB [#wc98b622] -サービス:ブロック [[Blob>#w947118f]] のみ -冗長オプション:[[LRS>#q3d73577]]、[[ZRS>#kf2c295e]] ***Premium ファイル共有 [#h960c9ee] -サービス:[[File>#v4ca71d7]]のみ -冗長オプション:[[LRS>#q3d73577]]、[[ZRS>#kf2c295e]] ***Premium ページ BLOB [#pdfec1ca] -サービス:ページ [[Blob>#w947118f]] のみ -冗長オプション:[[LRS>#q3d73577]] *その他のトピック [#l082961c] **[[データ冗長オプション>Azureの冗長化]] [#l8905289] 各オプション環境下で、3多重化される。 ***LRS(ローカル冗長ストレージ) [#q3d73577] -可用性セット(AS)、ラック分散 -1つのデータセンター上で3多重化される。 ***ZRS(ゾーン冗長ストレージ) [#kf2c295e] -可用性ゾーン(AZ)、DC分散 -複数のデータセンター上で3多重化される。 ***GRS(Geo冗長ストレージ) [#y1b6854f] -ペアリージョン、地理分散 -プライマリリージョンでローカル3多重化され、 -セカンダリリージョンにレプリケーション。 ***GZRS(Geoゾーン冗長ストレージ) [#c3d778b5] -[[ZRS>#kf2c295e]]+[[GRS>#y1b6854f]] -プライマリリージョンで複数のデータセンター上で3多重化され、 -セカンダリリージョンにレプリケーション。 ***RA-GRS(読み取りアクセスの Geo冗長ストレージ) [#e7ea30a6] [[GRS>#y1b6854f]]で、複数のリージョンで同時にreadできるようにして速度あげる。 ***RA-GZRS [#v153361d] [[GZRS>#c3d778b5]]で、複数のリージョンで同時にreadできるようにして速度あげる。 **ツール [#q09b4d10] ***Storage Explorer [#mfc2b935] GUI ベースのストレージデータ管理ツール ***azcopy [#ceba9c1b] コマンドラインベースのファイルコピーツール **認証・認可 [#a3325540] ***[[RBAC>Role Based Access Control (RBAC)]] [#q86bc2b4] -ログで追跡が出来るので本番用。 -[[Azure Active Directory]]での認証が必要。 -アプリケーションの場合は、[[Azure Managed ID]]を使用する。 -その際、権限を絞り、意図しない権限付与に注意。 --[[ストレージ・キー>#v69132a8]]列挙のアクセス許可を持つ~ ロールが問題になるので、スコープの設定に注意する。 ---Storage Account Contributor ---Storage Account Key Operator Service Role ---DevTests Labs User ---Log Analytics Contributor ---Virtual Machine Contributor --その他 ---Storage Blob Data Owner([[SASトークン>#q2d3103b]]発行可能) -参考 --Managed Identity と RBAC を使って Azure Storage をアクセスキー無しで扱ってみる - しばやん雑記~ https://blog.shibayan.jp/entry/20190915/1568480037 ***[[SASトークン>トークン#w01b1c2d]] [#q2d3103b] -ログで追跡が出来ないので開発用。 -One Driveの共有(URL)のような機能。 -特定のBlogやTableの決められた範囲へ期限内のアクセス許可を与える。 -アクセス・ポリシー機能を併用しないと、Revokeできない。 ***ストレージ・キー [#v69132a8] -ログで追跡が出来ないので開発用。 -ストレージ アカウントの共有キーとも言う。 -ポータル上は「アクセス キー」と表示される。 -開発では便利だが、本番ではキーの管理が面倒。 **セキュア化とロックダウン [#p914312a] ***作業内容の安全性の確認 [#i1151b2e] -入力制御(インバウンド) --経路解放~ 以下の使い分け併用が可能。 ---IPアドレス制限~ ・ファイアウォール規則で送信元のIPアドレスを絞れる。~ ・ただし、多く場合、入力元のFirewallなどの併用が必要。~ ・Firewallを使用すると、監視には有効だが高額になる。~ ・入力元がAzureサービスの場合、~ ・例えば[[Azure Firewall]]では、[[送信元IPアドレスの問題>Azureの仮想ネットワーク#ud86d249]]が発生する。~ ・この場合、[[Azure Service Endpoint]]を使用する必要がある。 ---[[Azure Service Endpoint]]~ ・監視機能がない。~ ・通信の課金がない。~ ・入力元の仮想ネットワークを許可する。 ---[[Azure Private Link]] / [[Endpoint>Azure Private Endpoint]]~ ・監視機能がない。~ ・通信に課金がある(大量データは注意)。~ ・入力元の制限ではなく、入力元へ引き込む。 --[[認証・認可>#a3325540]] --攻撃の検知 ---診断設定からアクセス・ログの取得 ---ATP(Advanced Threat Protection)の利用 -ハードニング(サーバ) --機能無効化 ---パブリック・アクセス機能~ ・[[認証・認可>#a3325540]]が不要のアクセスが可能になる~ ・Blobコンテナ単位で設定が可能~ ・経路解放の設定と併用可能。 ---その他の機能~ ・静的 Web サイト機能 (既定値:無効)~ ・[[CORS>CORS (Cross-Origin Resource Sharing)]](既定値:無効)~ ・CDN(既定値:無効)~ ・[[SASトークン>#q2d3103b]](権限で制御)~ ・Search(既定値:設定なし)~ ・安全な転送が必要(既定値 : HTTPS を強制しない)~ 例外的に、既定値から変更した方がセキュア --高額請求抑止~ Premium ストレージの利用抑止 --アンチマルウェア~ 3rd party ソリューション --透過的暗号化 ---既定で SSE (Storage Service Encryption)が有効 ---独自キーの持ち込みも可能だが、通常は不要 -出力制御(アウトバウンド)~ なし。 ***変更・保守、作業の一覧化 [#t9e31b56] -ストレージの主なメンテナンス作業と、必要な権限付与 --Reader ロールは常時割り当てで OK。 --Storage XX Data Contributor ロールは積極的に使う。 |サービス|作業者|認証|ツール|作業|経路&br;リスク|情報&br;リスク|コスト&br;リスク|権限付与&br;(組み込みロール)|h |Storage|インフラ&br;運用担当者|AzADユーザ&br;アカウント|Azureポータル|ファイアウォールの設定を変更する|× 侵入経路|||Storage Account Contributor| |~|~|~|~|ジオ・フェイルオーバを行う||||~| |~|~|~|~|[[ストレージ・キー>#v69132a8]]を再生成する||× キー流出||Storage Account Key Operator Service Role| |~|~|~|~|アクセスログを確認する||||Storage Blob Data Reader| |~|~|~|~|ATP からの通知を確認する||||(メールなどで通知されるため不要)| |~|アプリ開発者|AzADユーザ&br;アカウント|Storage Explorer, azcopy|Blob コンテナを追加する(初期設定)||× 情報漏洩||Storage Blob Data Contributor| |~|~|~|~|Blob ファイルを追加 / 変更 / 削除する||~||~| |~|アプリケーション|[[Azure Managed ID]]|-|Blob データを読み書きする||× 情報漏洩||Storage Blob Data Contributor| |~|~|~|~|Queue データを読み書きする||~||Storage Queue Data Contrtibutor| -[[意図しない権限付与に注意が必要>#q86bc2b4]] *IaC化 [#ea519673] **[[Azure PowerShell]] [#lc06db33] ... **[[Azure CLI]] [#k80fcfb2] ***ストレージ アカウント [#i5202896] >az storage account create ^ --name <storageAccountsName> ^ --resource-group <既存のresourceGroupName> ^ --location <location> ^ --sku Standard_LRS ***ストレージ コンテナ [#g1d2a4d1] -ロールの割り当て~ ストレージ BLOB データ共同作成者ロールを自分に割り当て >az ad signed-in-user show --query objectId -o tsv | az role assignment create ^ --role "Storage Blob Data Contributor" ^ --assignee @- ^ --scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Storage/storageAccounts/<storageAccountsName>" ※ 標準入力を指定するには「@-」とする(Bash環境の例は[[コチラ>https://github.com/OpenTouryoProject/DxCommon/tree/develop/AzureIaC/Storage]])。 -コンテナの作成~ auth-modeは、作成操作を何をもって承認するか?的な意味。 >az storage container create ^ --account-name <storageAccountsName> ^ --name <containerName> ^ --auth-mode login ***IPアドレス制限 [#efd06333] -ルールの追加 >az storage account network-rule add ^ --resource-group <resourceGroupName> ^ --account-name <storageAccountsName> ^ --ip-address xxx.xxx.xxx.xxx -ルールの確認 --CLI az storage account network-rule list ^ --account-name <storageAccountsName> --ポータル~ ストレージ・アカウント → ネットワーク~ → 選択されたネットワーク → ファイアウォール欄 --動作確認~ Azure Storage ExplorerなどでIPアドレス制限を確認する。 ※ データ・パープライン系は「West US 2」辺りが良いかも。 **参考 [#xa8abb4e] -Microsoft Docs --Azure Storage ---クイックスタート~ ・PowerShell を使用して BLOB を作成する~ https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-quickstart-blobs-powershell~ ・Azure CLI を使用して BLOB を作成する~ https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-quickstart-blobs-cli ---Azure CLI で BLOB データへのアクセスの承認方法を選択する~ https://docs.microsoft.com/ja-jp/azure/storage/blobs/authorize-data-operations-cli --PowerShell > ... > ... ---https://docs.microsoft.com/en-us/powershell/module/az.storage/new-azstorageaccount ---https://docs.microsoft.com/ja-jp/powershell/module/az.storage/new-azstoragecontainer --[[Azure CLI]] > ... > ... ---az storage account~ https://docs.microsoft.com/ja-jp/cli/azure/storage/account ---az storage container~ https://docs.microsoft.com/ja-jp/cli/azure/storage/container --SKU の種類 (Azure Storage)~ https://docs.microsoft.com/ja-jp/rest/api/storagerp/srp_sku_types --Azure RBAC のスコープについて~ https://docs.microsoft.com/ja-jp/azure/role-based-access-control/scope-overview *参考 [#xfa622f2] -使ったことない人向けのAzure用語 - Qiita~ https://qiita.com/onokatio/items/1cba032329f81ed83f20 -SQL Server と Azure ストレージを組み合わせたデータベースの利用について (2018/2 版) at SE の雑記~ https://blog.engineer-memo.com/2018/02/12/sql-server-と-azure-ストレージを組み合わせたデータベースの/ **microsoft.com [#ke499e69] ***Microsoft Azure [#pf41dc98] -BLOB Storage~ https://azure.microsoft.com/ja-jp/services/storage/blobs/ -Table Storage~ https://azure.microsoft.com/ja-jp/services/storage/tables/ -Queue Storage~ https://azure.microsoft.com/ja-jp/services/storage/queues/ -File Storage~ https://azure.microsoft.com/ja-jp/services/storage/files/ -Azure Storage の価格~ --Azure Storage Blob の価格~ https://azure.microsoft.com/ja-jp/pricing/details/storage/blobs/ --Azure ページ BLOB Storage の価格~ https://azure.microsoft.com/ja-jp/pricing/details/storage/page-blobs/ --Azure Files の料金~ https://azure.microsoft.com/ja-jp/pricing/details/storage/files/ --Azure Queue Storage の価格~ https://azure.microsoft.com/ja-jp/pricing/details/storage/queues/ ***Microsoft Docs [#u1244aaf] -Azure Storage のドキュメント~ https://docs.microsoft.com/ja-jp/azure/storage/ --common ---Azure Storage の概要~ https://docs.microsoft.com/ja-jp/azure/storage/common/storage-introduction ---ストレージ アカウントの概要~ https://docs.microsoft.com/ja-jp/azure/storage/common/storage-account-overview ---Azure Storage Analytics のログ~ https://docs.microsoft.com/ja-jp/azure/storage/common/storage-analytics-logging ---Azure Defender for Storage を構成する~ https://docs.microsoft.com/ja-jp/azure/storage/common/storage-advanced-threat-protection --blobs ---Azure Blob Storage のドキュメント~ https://docs.microsoft.com/ja-jp/azure/storage/blobs/ ---Blob (オブジェクト) Storage について - Azure Storage~ https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-blobs-overview --files ---Azure Files のドキュメント~ https://docs.microsoft.com/ja-jp/azure/storage/files/ ---Azure Files の概要~ https://docs.microsoft.com/ja-jp/azure/storage/files/storage-files-introduction --tables~ ---Azure Table Storage のドキュメント~ https://docs.microsoft.com/ja-jp/azure/storage/tables/ ---Table Storage の概要 - Azure のオブジェクト ストレージ~ https://docs.microsoft.com/ja-jp/azure/storage/tables/table-storage-overview --queues~ ---Azure Queue storage のドキュメント~ https://docs.microsoft.com/ja-jp/azure/storage/queues/ ---Azure Queue Storage の概要 - Azure Storage~ https://docs.microsoft.com/ja-jp/azure/storage/queues/storage-queues-introduction ---- Tags: [[:インフラストラクチャ]], [[:クラウド]], [[:ビッグデータ]], [[:Azure]]