Az - Storage Accounts & Blobs
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureストレージアカウントは、Microsoft Azureの基本的なサービスであり、スケーラブルで安全かつ高可用性のクラウドストレージをさまざまなデータタイプ(Blob(バイナリ大オブジェクト)、ファイル、キュー、テーブルなど)に提供します。これらは、異なるストレージサービスを単一の名前空間の下で簡単に管理できるようにグループ化するコンテナとして機能します。
主な構成オプション:
すべてのストレージアカウントは、Azure全体で一意の名前を持つ必要があります。
すべてのストレージアカウントは、リージョンまたはAzure拡張ゾーンにデプロイされます。
より良いパフォーマンスのために、ストレージアカウントのプレミアムバージョンを選択することができます。
ラック、ドライブ、データセンターの障害から保護するために、4種類の冗長性を選択できます。
セキュリティ構成オプション:
REST API操作のために安全な転送を要求:ストレージとの通信にTLSを要求します。
個々のコンテナでの匿名アクセスを有効にすることを許可:そうでない場合、将来的に匿名アクセスを有効にすることはできません。
ストレージアカウントキーアクセスを有効にする:そうでない場合、共有キーによるアクセスは禁じられます。
最小TLSバージョン
コピー操作のための許可されたスコープ:任意のストレージアカウント、同じEntraテナントの任意のストレージアカウント、または同じ仮想ネットワーク内のプライベートエンドポイントを持つストレージアカウントからのアクセスを許可します。
Blobストレージオプション:
クロステナントレプリケーションを許可
アクセス層:ホット(頻繁にアクセスされるデータ)、クール、コールド(まれにアクセスされるデータ)
ネットワークオプション:
ネットワークアクセス:
すべてのネットワークから許可
選択した仮想ネットワークとIPアドレスから許可
公開アクセスを無効にし、プライベートアクセスを使用
プライベートエンドポイント:仮想ネットワークからストレージアカウントへのプライベート接続を許可します。
データ保護オプション:
コンテナのポイントインタイムリストア:コンテナを以前の状態に復元することを許可します。
バージョニング、変更フィード、Blobソフト削除を有効にする必要があります。
Blobのソフト削除を有効にする:削除されたBlob(上書きされたものも含む)に対して日数の保持期間を有効にします。
コンテナのソフト削除を有効にする:削除されたコンテナに対して日数の保持期間を有効にします。
ファイル共有のソフト削除を有効にする:削除されたファイル共有に対して日数の保持期間を有効にします。
Blobのバージョニングを有効にする:Blobの以前のバージョンを保持します。
Blob変更フィードを有効にする:Blobの作成、変更、削除の変更をログに保持します。
バージョンレベルの不変性サポートを有効にする:すべてのBlobバージョンに適用される時間ベースの保持ポリシーをアカウントレベルで設定できます。
バージョンレベルの不変性サポートとコンテナのポイントインタイムリストアは同時に有効にすることはできません。
暗号化構成オプション:
暗号化タイプ:Microsoft管理キー(MMK)または顧客管理キー(CMK)を使用することができます。
インフラストラクチャ暗号化を有効にする:データを「より安全に」二重暗号化することを許可します。
「Blobの公開アクセスを許可」が有効(デフォルトでは無効)になっている場合、コンテナを作成する際に次のことが可能です:
Blobを読むための公開アクセスを提供(名前を知っている必要があります)。
コンテナのBlobをリストし、それらを読む。
完全にプライベートにする。
接続できるストレージを見つけた場合、Microsoft Azure Storage Explorerツールを使用して接続できます。
ストレージアカウントにアクセスするために、RBACロールを使用してEntra IDプリンシパルを使用することが可能であり、推奨される方法です。
ストレージアカウントには、アクセスするために使用できるアクセスキーがあります。これにより、ストレージアカウントへの完全なアクセスが提供されます。
特定のリソースへのアクセスを認可するために、アクセスキーで署名された共有キーを生成することが可能です。
CanonicalizedResource
部分は、ストレージサービスリソース(URI)を表します。URLの任意の部分がエンコードされている場合、CanonicalizedResource
内でもエンコードする必要があります。
これはデフォルトでaz
cliによって使用され、リクエストを認証します。Entra IDプリンシパルの資格情報を使用するには、パラメータ--auth-mode login
を指定します。
Blob、キュー、ファイルサービスのための共有キーを生成することが可能で、次の情報に署名します:
テーブルサービスの共有キーを生成することが可能です。次の情報を署名します:
Blob、キュー、およびファイルサービスのためのライト共有キーを生成することが可能で、以下の情報に署名します:
テーブルサービスのためのライト共有キーを生成することが可能です。次の情報に署名します:
次に、キーを使用するには、次の構文に従ってAuthorizationヘッダーに記述できます:
Shared Access Signatures (SAS) は、Azure Storage アカウント内のリソースにアクセスするための特定の権限を付与する安全で時間制限のある URL です。アクセスキーはすべてのリソースへの完全な管理アクセスを提供しますが、SAS は権限(読み取りや書き込みなど)を指定し、期限を定義することで細かい制御を可能にします。
ユーザー委任 SAS: これは Entra ID プリンシパル から作成され、SAS に署名し、ユーザーから SAS への権限を委任します。これは blob およびデータレイクストレージ でのみ使用できます (docs)。生成されたすべてのユーザー委任 SAS を 取り消す ことが可能です。
ユーザーが持っている権限よりも「多くの」権限を持つ委任 SAS を生成することは可能ですが、プリンシパルがそれらの権限を持っていない場合は機能しません(権限昇格はありません)。
サービス SAS: これはストレージアカウントの アクセスキー のいずれかを使用して署名されます。特定のリソースへのアクセスを単一のストレージサービスに付与するために使用できます。キーが更新されると、SAS は機能しなくなります。
アカウント SAS: これもストレージアカウントの アクセスキー のいずれかで署名されます。ストレージアカウントサービス(Blob、Queue、Table、File)全体のリソースへのアクセスを付与し、サービスレベルの操作を含むことができます。
アクセスキー で署名された SAS URL は次のようになります:
https://<container_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D
ユーザー委任 として署名された SAS URL は次のようになります:
https://<container_name>.blob.core.windows.net/testing-container?sp=r&st=2024-11-22T15:07:40Z&se=2024-11-22T23:07:40Z&skoid=d77c71a1-96e7-483d-bd51-bd753aa66e62&sktid=fdd066e1-ee37-49bc-b08f-d0e152119b04&skt=2024-11-22T15:07:40Z&ske=2024-11-22T23:07:40Z&sks=b&skv=2022-11-02&spr=https&sv=2022-11-02&sr=c&sig=7s5dJyeE6klUNRulUj9TNL0tMj2K7mtxyRc97xbYDqs%3D
いくつかの http パラメータ に注意してください:
se
パラメータは SAS の 有効期限 を示します
sp
パラメータは SAS の 権限 を示します
sig
は SAS を検証するための 署名 です
SAS を生成する際には、付与すべき権限を示す必要があります。SAS が生成されるオブジェクトによって、異なる権限が含まれる場合があります。例えば:
(a)dd, (c)reate, (d)elete, (e)xecute, (f)ilter_by_tags, (i)set_immutability_policy, (l)ist, (m)ove, (r)ead, (t)ag, (w)rite, (x)delete_previous_version, (y)permanent_delete
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Blobストレージ
https://<storage-account>.blob.core.windows.net
https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list
データレイクストレージ
https://<storage-account>.dfs.core.windows.net
Azureファイル
https://<storage-account>.file.core.windows.net
キューストレージ
https://<storage-account>.queue.core.windows.net
テーブルストレージ
https://<storage-account>.table.core.windows.net