「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[Azure]]
---[[Azure Subscriptionの管理@エンプラ]]~
[[Azure Subscriptionの管理手順@エンプラ]]
-[[戻る>Azureのデータ・ストア]]

* 目次 [#m2699ff0]
#contents

*概要 [#w2672b00]
Azureのストレージ

*参考 [#i10afbff]
*ストレージの種類 [#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]]
Tags: [[:インフラストラクチャ]], [[:クラウド]], [[:ビッグデータ]], [[:Azure]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS