4.3 KiB
Az - Table Storage
{{#include ../../../banners/hacktricks-training.md}}
基本情報
Azure Table Storage は、大量の構造化された非関係データを保存するために設計された NoSQL キー-バリューストアです。高い可用性、低遅延、およびスケーラビリティを提供し、大規模なデータセットを効率的に処理します。データはテーブルに整理され、各エンティティはパーティションキーと行キーによって識別され、迅速な検索を可能にします。データは静止時の暗号化、ロールベースのアクセス制御、および安全で管理されたストレージのための共有アクセス署名などの機能をサポートしており、幅広いアプリケーションに適しています。
テーブルストレージには組み込みのバックアップメカニズムはありません。
キー
PartitionKey
- PartitionKey はエンティティを論理パーティションにグループ化します。同じ PartitionKey を持つエンティティは一緒に保存され、クエリパフォーマンスとスケーラビリティが向上します。
- 例: 従業員データを保存するテーブルでは、
PartitionKeyは部門を表すことがあります。例:"HR"または"IT"。
RowKey
- RowKey はパーティション内のエンティティの一意の識別子です。PartitionKey と組み合わせることで、テーブル内の各エンティティがグローバルに一意の識別子を持つことを保証します。
- 例:
"HR"パーティションの場合、RowKeyは従業員 ID である可能性があります。例:"12345"。
その他のプロパティ (カスタムプロパティ)
- PartitionKey と RowKey に加えて、エンティティはデータを保存するための追加のカスタムプロパティを持つことができます。これらはユーザー定義であり、従来のデータベースの列のように機能します。
- プロパティはキー-バリューペアとして保存されます。
- 例:
Name、Age、Titleは従業員のカスタムプロパティである可能性があります。
列挙
{{#tabs}} {{#tab name="az cli"}}
# Get storage accounts
az storage account list
# List tables
az storage table list --account-name <name>
# Read table
az storage entity query \
--account-name <name> \
--table-name <t-name> \
--top 10
# Write table
az storage entity insert \
--account-name <STORAGE_ACCOUNT_NAME> \
--table-name <TABLE_NAME> \
--entity PartitionKey=<PARTITION_KEY> RowKey=<ROW_KEY> <PROPERTY_KEY>=<PROPERTY_VALUE>
# Write example
az storage entity insert \
--account-name mystorageaccount \
--table-name mytable \
--entity PartitionKey=HR RowKey=12345 Name="John Doe" Age=30 Title="Manager"
# Update row
az storage entity merge \
--account-name mystorageaccount \
--table-name mytable \
--entity PartitionKey=pk1 RowKey=rk1 Age=31
{{#endtab}} {{#tab name="PowerShell"}}
# Get storage accounts
Get-AzStorageAccount
# List tables
Get-AzStorageTable -Context (Get-AzStorageAccount -Name <mystorageaccount> -ResourceGroupName <ResourceGroupName>).Context
Get-AzStorageTableStoredAccessPolicy -Table <Table> -Context (Get-AzStorageAccount -Name <mystorageaccount -ResourceGroupName <ResourceGroupName>).Context
{{#endtab}} {{#endtabs}}
Note
デフォルトでは
azcli はアカウントキーを使用してキーに署名し、アクションを実行します。Entra ID プリンシパルの権限を使用するには、パラメータ--auth-mode loginを使用してください。
Tip
使用するアカウントキーを示すには、パラメータ
--account-keyを使用します
SAS トークンを使用してアクセスするには、SAS トークンと共にパラメータ--sas-tokenを使用します
Privilege Escalation
ストレージの特権昇格と同様です:
{{#ref}} ../az-privilege-escalation/az-storage-privesc.md {{#endref}}
Post Exploitation
{{#ref}} ../az-post-exploitation/az-table-storage-post-exploitation.md {{#endref}}
Persistence
ストレージの永続性と同様です:
{{#ref}} ../az-persistence/az-storage-persistence.md {{#endref}}
{{#include ../../../banners/hacktricks-training.md}}