次の方法で共有


Blob Storage の Azure ロールの割り当て条件の例

この記事では、Azure Blob Storage へのアクセスを制御するためのロールの割り当て条件の例をいくつか示します。

重要

Azure 属性ベースのアクセス制御 (Azure ABAC) は、ストレージ アカウントの Standard と Premium 両方のパフォーマンス レベルで、requestresourceenvironmentprincipal を使用して Azure Blob Storage、Azure Data Lake Storage Gen2、Azure キューへのアクセスを制御するために一般提供 (GA) されています。 現在、コンテナー メタデータ リソース属性とリスト BLOB インクルード要求属性はプレビュー段階です。 Azure Storage の ABAC の完全な機能状態情報については、「Azure Storage の条件機能の状態」を参照してください。

ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

[前提条件]

ロールの割り当て条件を追加または編集するための前提条件の詳細については、条件の前提条件に関するページを参照してください。

この記事の例の概要

次の表を使用して、ABAC シナリオに適した例をすばやく見つけてください。 この表には、シナリオの簡単な説明と、 ソース (環境、プリンシパル、要求、リソース) 別に例で使用される属性の一覧が含まれています。

環境 校長 リクエスト リソース
BLOB インデックス タグを使用した BLOB の読み取り タグ
新しい BLOB には BLOB インデックス タグを含める必要があります タグ
既存の BLOB には BLOB インデックス タグ キーが必要です タグ
既存の BLOB には、BLOB インデックス タグのキーと値が必要です タグ
名前付きコンテナー内の BLOB の読み取り、書き込み、または削除 コンテナー名
パスを使用して名前付きコンテナー内の BLOB を読み取る コンテナー名
ブロブ パス
パスを持つ名前付きコンテナー内の BLOB の読み取りまたは一覧表示 BLOB プレフィックス コンテナー名
ブロブ パス
パスを使用して名前付きコンテナーに BLOB を書き込む コンテナー名
ブロブ パス
BLOB インデックス タグとパスを使用した BLOB の読み取り タグ
BLOB パス
特定のメタデータを使用してコンテナー内の BLOB を読み取る コンテナー メタデータ
特定のメタデータを使用してコンテナー内の BLOB を書き込むまたは削除する コンテナー メタデータ
現在の BLOB バージョンのみを読み取ります isCurrentVersion
現在の BLOB バージョンと特定の BLOB バージョンを読み取る versionId isCurrentVersion
古い BLOB バージョンを削除する versionId
現在の BLOB バージョンとすべての BLOB スナップショットを読み取る スナップショット isCurrentVersion
リスト BLOB 操作に BLOB のメタデータ、スナップショット、またはバージョンを含めることを許可する リスト BLOB インクルード
リスト BLOB 操作に BLOB メタデータを含めないように制限する リスト BLOB インクルード
階層型名前空間が有効になっているストレージ アカウントの読み取り専用 isHnsEnabled
特定の暗号化スコープを持つ BLOB の読み取り 暗号化スコープ名
特定の暗号化スコープを持つ名前付きストレージ アカウント内の BLOB の読み取りまたは書き込み ストレージ アカウント名
暗号化スコープ名
BLOB インデックス タグとカスタム セキュリティ属性に基づく BLOB の読み取りまたは書き込み 身分証明書 タグ タグ
BLOB インデックス タグと複数値のカスタム セキュリティ属性に基づく BLOB の読み取り 身分証明書 タグ
特定の日時より後の BLOB への読み取りアクセスを許可する UtcNow コンテナー名
特定のサブネットから特定のコンテナー内の BLOB へのアクセスを許可する サブネット コンテナー名
機密性の高い BLOB を読み取るためにプライベート リンク アクセスを要求する isPrivateLink タグ
特定のプライベート エンドポイントからのみコンテナーへのアクセスを許可する プライベート エンドポイント コンテナー名
例: 機密性の高い BLOB データへの読み取りアクセスを特定のプライベート エンドポイントからのみ許可し、アクセス用にタグ付けされたユーザーが許可する プライベート エンドポイント 身分証明書 タグ

BLOB インデックス タグ

このセクションには、BLOB インデックス タグに関連する例が含まれています。

重要

Read content from a blob with tag conditions サブ操作は現在、ABAC 機能プレビュー中に実装された条件との互換性のためにサポートされていますが、非推奨とされており、代わりに Read a blob アクションを使用することをお勧めします。

Azure portal で ABAC 条件を構成すると、"非推奨: タグ条件を使用して BLOB からコンテンツを読み取る" と表示されることがあります。 操作を削除し、Read a blob アクションに置き換えることをお勧めします。

タグ条件によって読み取りアクセスを制限する独自の条件を作成する場合は、「例: BLOB インデックス タグを使用した BLOB の読み取り」を参照してください。

例: BLOB インデックス タグを使用して BLOB を読み取る

この条件により、ユーザーは Project の BLOB インデックス タグ キーと値 Cascade を使用して BLOB を読み取ることができます。 このキー値タグのない BLOB へのアクセスは許可されません。

この条件をセキュリティ プリンシパルに対して有効にするには、次のアクションを含むすべてのロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

BLOB インデックス タグを使用した BLOB への読み取りアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal ビジュアル エディターを使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
Attribute source (属性ソース) 資源
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
{keyName}
オペレーター StringEquals
価値 {keyValue}

BLOB インデックス タグを持つ BLOB への読み取りアクセスを示す Azure portal の条件エディターのスクリーンショット。

例: 新しい BLOB には BLOB インデックス タグを含める必要がある

この条件では、新しい BLOB に Project の BLOB インデックス タグ キーと値 Cascade を含める必要があります。

新しい BLOB を作成できるアクションは 2 つあります。そのため、両方を対象にする必要があります。 この条件は、次のいずれかのアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

新しい BLOB に BLOB インデックス タグを含める必要がある条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

新しい BLOB に BLOB インデックス タグを含める必要がある Azure portal の条件エディターのスクリーンショット。

例: 既存の BLOB には BLOB インデックス タグ キーが必要

この条件では、既存の BLOB に、許可されている BLOB インデックス タグ キーの少なくとも 1 つ (Project または Program) を使用してタグ付けする必要があります。 この条件は、既存の BLOB にガバナンスを追加する場合に役立ちます。

既存の BLOB のタグを更新できるアクションは 2 つあります。そのため、両方を対象にする必要があります。 この条件は、次のいずれかのアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

既存の BLOB に BLOB インデックス タグ キーが必要であることを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

既存の BLOB に BLOB インデックス タグ キーが必要であることを示す Azure portal の条件エディターのスクリーンショット。

例: 既存の BLOB には、BLOB インデックス タグのキーと値が必要です

この条件では、既存のすべての BLOB に Project の BLOB インデックス タグ キーと Cascade、Baker、または Skagit の値が必要です。 この条件は、既存の BLOB にガバナンスを追加する場合に役立ちます。

既存の BLOB のタグを更新できるアクションは 2 つあります。そのため、両方を対象にする必要があります。 この条件は、次のいずれかのアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

既存の BLOB に BLOB インデックス タグ キーと値が必要であることを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Write to a blob with blob index tags (BLOB インデックス タグを使用して BLOB に書き込む)
Write blob index tags (BLOB インデックス タグを書き込む)
Attribute source (属性ソース) リクエスト
特性 Blob index tags [Keys] (BLOB インデックス タグ [キー])
オペレーター ForAnyOfAnyValues:StringEquals
価値 {keyName}
オペレーター そして
式 2
Attribute source (属性ソース) リクエスト
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
{keyName}
オペレーター ForAllOfAnyValues:StringEquals
価値 {keyValue1}
{keyValue2}
{keyValue3}

既存の BLOB に BLOB インデックス タグ キーと値が必要であることを示す Azure portal の条件エディターのスクリーンショット。

BLOB コンテナーの名前またはパス

このセクションでは、コンテナー名または BLOB パスに基づいてオブジェクトへのアクセスを制限する方法を示す例を示します。

例: 名前付きコンテナー内の BLOB の読み取り、書き込み、または削除

この条件により、ユーザーは blobs-example-container という名前のストレージ コンテナー内の BLOB を読み取り、書き込み、または削除できます。 この条件は、サブスクリプション内の他のユーザーと特定のストレージ コンテナーを共有する場合に役立ちます。

既存の BLOB の読み取り、書き込み、削除には 5 つのアクションがあります。 この条件は、次のいずれかのアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。
この条件に含まれるストレージ アカウントで階層型名前空間が有効になっているか、今後有効になる可能性がある場合に追加します。

サブ操作は、条件がタグに基づいて作成される場合にのみ必要であるため、この条件ではサブ操作は使用されません。

名前付きコンテナー内の BLOB の読み取り、書き込み、または削除を示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

名前付きコンテナー内の BLOB の読み取り、書き込み、または削除を示す Azure portal の条件エディターのスクリーンショット。

例: パスを使用して名前付きコンテナー内の BLOB を読み取る

この条件により、BLOB パスが readonly/* である blobs-example-container という名前のストレージ コンテナーへの読み取りアクセスが許可されます。 この条件は、サブスクリプション内の他のユーザーと読み取りアクセスのためにストレージ コンテナーの特定の部分を共有する場合に役立ちます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。
この条件に含まれるストレージ アカウントで階層型名前空間が有効になっているか、今後有効になる可能性がある場合に追加します。

パスを持つ名前付きコンテナー内の BLOB への読み取りアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
階層型名前空間が有効になっているアカウントのすべてのデータ操作 (該当する場合)
Attribute source (属性ソース) 資源
特性 コンテナー名
オペレーター StringEquals
価値 {containerName}
式 2
オペレーター そして
Attribute source (属性ソース) 資源
特性 BLOB パス
オペレーター StringLike
価値 {pathString}

パスを持つ名前付きコンテナー内の BLOB への読み取りアクセスを示す Azure portal の条件エディターのスクリーンショット。

例: パスを持つ名前付きコンテナー内の BLOB の読み取りまたは一覧表示

この条件により、読み取りアクセスが許可され、BLOB パスが readonly/* である blobs-example-container という名前のストレージ コンテナーへのアクセスも一覧表示されます。 条件 #1 は、リスト BLOB を除く読み取りアクションに適用されます。 条件 #2 は、リスト BLOB に適用されます。 この条件は、読み取りまたはリスト アクセスのためにストレージ コンテナーの特定の部分をサブスクリプション内の他のユーザーと共有する場合に役立ちます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。
この条件に含まれるストレージ アカウントで階層型名前空間が有効になっているか、今後有効になる可能性がある場合に追加します。

パスを持つ名前付きコンテナー内の BLOB への読み取りと一覧表示のアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

Azure portal では、prefix='' を使用してコンテナーのルート ディレクトリから BLOB を一覧表示します。 プレフィックス StringStartsWith 'readonly/' を使用して BLOB の一覧表示操作で条件を追加すると、対象ユーザーは Azure portal でコンテナーのルート ディレクトリから BLOB を一覧表示できなくなります。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
階層型名前空間が有効になっているアカウントのすべてのデータ操作 (該当する場合)
Attribute source (属性ソース) 資源
特性 コンテナー名
オペレーター StringEquals
価値 {containerName}
式 2
オペレーター そして
Attribute source (属性ソース) 資源
特性 BLOB パス
オペレーター StringStartsWith
価値 {pathString}
条件 #2 設定
アクション BLOB をリストする
階層型名前空間が有効になっているアカウントのすべてのデータ操作 (該当する場合)
Attribute source (属性ソース) 資源
特性 コンテナー名
オペレーター StringEquals
価値 {containerName}
式 2
オペレーター そして
Attribute source (属性ソース) リクエスト
特性 BLOB プレフィックス
オペレーター StringStartsWith
価値 {pathString}

例: パスを使用して名前付きコンテナーに BLOB を書き込む

この条件により、パートナー (Microsoft Entra ゲスト ユーザー) は、uploads/contoso/* のパスを持つ Contosocorp という名前のストレージ コンテナーにファイルをドロップできます。 この条件は、他のユーザーがストレージ コンテナーにデータを配置できるようにするために役立ちます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。
この条件に含まれるストレージ アカウントで階層型名前空間が有効になっているか、今後有効になる可能性がある場合に追加します。

パスを持つ名前付きコンテナー内の BLOB への書き込みアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Write to a blob (BLOB に書き込む)
Create a blob or snapshot, or append data (BLOB またはスナップショットを作成するか、データを追加する)
階層型名前空間が有効になっているアカウントのすべてのデータ操作 (該当する場合)
Attribute source (属性ソース) 資源
特性 コンテナー名
オペレーター StringEquals
価値 {containerName}
式 2
オペレーター そして
Attribute source (属性ソース) 資源
特性 BLOB パス
オペレーター StringLike
価値 {pathString}

パスを持つ名前付きコンテナー内の BLOB への書き込みアクセスを示す Azure portal の条件エディターのスクリーンショット。

例: BLOB インデックス タグとパスを使用して BLOB を読み取る

この条件により、ユーザーは Program の BLOB インデックス タグ キー、Alpine の値、およびログの BLOB パス* を使用して BLOB を読み取ることができます。 ログの BLOB パス* には、BLOB 名も含まれます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

BLOB インデックス タグとパスを持つ BLOB への読み取りアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
Attribute source (属性ソース) 資源
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
{keyName}
オペレーター StringEquals
価値 {keyValue}

BLOB インデックス タグとパスを持つ BLOB への読み取りアクセスを示す Azure portal の条件 1 エディターのスクリーンショット。

条件 #2 設定
アクション Read a blob (BLOB を読み取る)
Attribute source (属性ソース) 資源
特性 BLOB パス
オペレーター StringLike
価値 {pathString}

BLOB インデックス タグとパスを持つ BLOB への読み取りアクセスを示す Azure portal の条件 2 エディターのスクリーンショット。

BLOB コンテナーのメタデータ

例: 特定のメタデータを使用してコンテナー内の BLOB を読み取る

この条件により、ユーザーは特定のメタデータ キーと値のペアを持つ BLOB コンテナー内の BLOB を読み取ることができます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
Attribute source (属性ソース) 資源
特性 コンテナー メタデータ
オペレーター StringEquals
価値 {containerName}

特定のメタデータを含むコンテナー内の読み取り BLOB を示す Azure portal の条件エディターのスクリーンショット。

例: 特定のメタデータを含むコンテナー内の BLOB を書き込むまたは削除する

この条件により、ユーザーは特定のメタデータ キーと値のペアを持つ BLOB コンテナー内の BLOB を書き込んだり削除したりできます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Write to a blob (BLOB に書き込む)
BLOB を削除する
Attribute source (属性ソース) 資源
特性 コンテナー メタデータ
オペレーター StringEquals
価値 {containerName}

特定のメタデータを含むコンテナー内の BLOB の書き込みと削除を示す Azure portal の条件エディターのスクリーンショット。

BLOB のバージョンまたは BLOB のスナップショット

このセクションでは、BLOB のバージョンまたはスナップショットに基づいてオブジェクトへのアクセスを制限する方法を示す例を示します。

例: 現在の BLOB バージョンのみを読み取る

この条件により、ユーザーは現在の BLOB バージョンのみを読み取ることができます。 ユーザーは他の BLOB バージョンを読み取ることはできません。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

現在の BLOB バージョンへの読み取りアクセスのみを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
階層型名前空間が有効になっているアカウントのすべてのデータ操作 (該当する場合)
Attribute source (属性ソース) 資源
特性 現在のバージョンかどうか
オペレーター BoolEquals
価値 正しい

例: 現在の BLOB バージョンと特定の BLOB バージョンを読み取る

この条件により、ユーザーは現在の BLOB バージョンを読み取り、バージョン ID が 2022-06-01T23:38:32.8883645Z の BLOB を読み取ることができます。 ユーザーは他の BLOB バージョンを読み取ることはできません。 バージョン ID 属性は、階層型名前空間が有効になっていないストレージ アカウントでのみ使用できます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

特定の BLOB バージョンへの読み取りアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
Attribute source (属性ソース) リクエスト
特性 バージョン ID
オペレーター DateTimeEquals
価値 <blobVersionId>
式 2
オペレーター 又は
Attribute source (属性ソース) 資源
特性 現在のバージョンかどうか
オペレーター BoolEquals
価値 正しい

例: 古い BLOB バージョンを削除する

この条件により、ユーザーは 2022 年 6 月 1 日より前の BLOB のバージョンを削除してクリーンアップを実行できます。 バージョン ID 属性は、階層型名前空間が有効になっていないストレージ アカウントでのみ使用できます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/deleteBlobVersion/action

古い BLOB バージョンへの削除アクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション BLOB を削除する
Delete a version of a blob (BLOB のバージョンを削除する)
Attribute source (属性ソース) リクエスト
特性 バージョン ID
オペレーター DateTimeLessThan
価値 <blobVersionId>

例: 現在の BLOB バージョンと BLOB スナップショットを読み取る

この条件により、ユーザーは現在の BLOB バージョンと BLOB スナップショットを読み取ることができます。 バージョン ID 属性は、階層型名前空間が有効になっていないストレージ アカウントでのみ使用できます。 スナップショット属性は、階層型名前空間が有効になっていないストレージ アカウントで使用でき、階層型名前空間が有効になっているストレージ アカウントでは現在プレビュー段階です。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

現在の BLOB バージョンと BLOB スナップショットへの読み取りアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
階層型名前空間が有効になっているアカウントのすべてのデータ操作 (該当する場合)
Attribute source (属性ソース) リクエスト
特性 スナップショット
存在する チェック済み
式 2
オペレーター 又は
Attribute source (属性ソース) 資源
特性 現在のバージョンかどうか
オペレーター BoolEquals
価値 正しい

例: BLOB メタデータ、スナップショット、またはバージョンを含めるリスト BLOB 操作を許可する

この条件により、ユーザーはコンテナー内の BLOB を一覧表示し、メタデータ、スナップショット、バージョン情報を含めることができます。 List BLOB include 属性は、階層型名前空間が有効になっていないストレージ アカウントで使用できます。

リスト BLOB には要求属性が含まれており、include 操作を呼び出すときに、 パラメーターの値を許可または制限することで機能します。 include パラメーターの値は、クロス積比較演算子を使用して条件で指定された値と比較されます。 比較が true と評価された場合は、 List Blobs 要求が許可されます。 比較が false と評価された場合、 List Blobs 要求は拒否されます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション BLOB をリストする
Attribute source (属性ソース) リクエスト
特性 リスト BLOB インクルード
オペレーター ForAllOfAnyValues:StringEqualsIgnoreCase
価値 {'メタデータ'、'スナップショット'、'バージョン'}

ユーザーがコンテナー内の BLOB を一覧表示し、メタデータ、スナップショット、およびバージョン情報を含めることを許可する条件を示す Azure portal の条件エディターのスクリーンショット。

例: BLOB のリスト操作に BLOB メタデータを含めないように制限する

この条件により、要求にメタデータが含まれている場合に、ユーザーが BLOB を一覧表示できないように制限されます。 List BLOB include 属性は、階層型名前空間が有効になっていないストレージ アカウントで使用できます。

リスト BLOB には要求属性が含まれており、include 操作を呼び出すときに、 パラメーターの値を許可または制限することで機能します。 include パラメーターの値は、クロス積比較演算子を使用して条件で指定された値と比較されます。 比較が true と評価された場合は、 List Blobs 要求が許可されます。 比較が false と評価された場合、 List Blobs 要求は拒否されます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション BLOB をリストする
Attribute source (属性ソース) リクエスト
特性 リスト BLOB インクルード
オペレーター ForAllOfAllValues:StringNotEquals
価値 {'metadata'}

要求にメタデータが含まれている場合にユーザーが BLOB を一覧表示できないように制限する条件を示す Azure portal の条件エディターのスクリーンショット。

階層型名前空間

このセクションでは、ストレージ アカウントに対して階層型名前空間が有効になっているかどうかに基づいて、オブジェクトへのアクセスを制限する方法を示す例を示します。

例: 階層型名前空間が有効になっている読み取り専用のストレージ アカウント

この条件により、ユーザーは 階層型名前空間 が有効になっているストレージ アカウント内の BLOB のみを読み取ることができます。 この条件は、リソース グループスコープ以上でのみ適用されます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

階層型名前空間が有効になっているストレージ アカウントへの読み取りアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
階層型名前空間が有効になっているアカウントのすべてのデータ操作 (該当する場合)
Attribute source (属性ソース) 資源
特性 階層型名前空間は有効か
オペレーター BoolEquals
価値 正しい

暗号化スコープ

このセクションには、承認された暗号化スコープを持つオブジェクトへのアクセスを制限する方法を示す例が含まれています。

例: 特定の暗号化スコープを持つ BLOB を読み取る

この条件により、ユーザーは暗号化スコープの validScope1 または validScope2で暗号化された BLOB を読み取ることができます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

暗号化スコープ validScope1 または validScope2 を持つ BLOB への読み取りアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
Attribute source (属性ソース) 資源
特性 暗号化スコープ名
オペレーター ForAnyOfAnyValues:StringEquals
価値 <scopeName>

例: 特定の暗号化スコープを持つ名前付きストレージ アカウント内の BLOB の読み取りまたは書き込み

この条件により、ユーザーは、 sampleaccount という名前のストレージ アカウント内の BLOB の読み取りまたは書き込みを行い、暗号化スコープの ScopeCustomKey1で暗号化できます。 BLOB が ScopeCustomKey1で暗号化または暗号化解除されていない場合、要求は禁止を返します。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

ストレージ アカウントごとに暗号化スコープが異なる可能性があるため、 storageAccounts:name 属性と encryptionScopes:name 属性を使用して、許可する特定の暗号化スコープを制限することをお勧めします。

暗号化スコープ ScopeCustomKey1 を持つ sampleaccount ストレージ アカウント内の BLOB への読み取りまたは書き込みアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション Read a blob (BLOB を読み取る)
Write to a blob (BLOB に書き込む)
Create a blob or snapshot, or append data (BLOB またはスナップショットを作成するか、データを追加する)
Attribute source (属性ソース) 資源
特性 アカウント名
オペレーター StringEquals
価値 <アカウント名>
式 2
オペレーター そして
Attribute source (属性ソース) 資源
特性 暗号化スコープ名
オペレーター ForAnyOfAnyValues:StringEquals
価値 <scopeName>

プリンシパル属性

このセクションでは、カスタム セキュリティ プリンシパルに基づいてオブジェクトへのアクセスを制限する方法を示す例を示します。

例: BLOB インデックス タグとカスタム セキュリティ属性に基づく BLOB の読み取りまたは書き込み

この条件により、ユーザーが BLOB インデックス タグに一致するカスタム セキュリティ属性を持っている場合、BLOB への読み取りまたは書き込みアクセスが許可されます。

たとえば、Brenda に属性 Project=Bakerがある場合、 Project=Baker BLOB インデックス タグを持つ BLOB の読み取りまたは書き込みのみが可能です。 同様に、Chandra では、 Project=Cascadeを使用した BLOB の読み取りまたは書き込みのみが可能です。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

詳細については、「 タグとカスタム セキュリティ属性に基づいて BLOB への読み取りアクセスを許可する」を参照してください。

BLOB インデックス タグとカスタム セキュリティ属性に基づく BLOB への読み取りまたは書き込みアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション ブロブの条件を読む
Attribute source (属性ソース) プリンシパル
特性 <attributeset>_<key>
オペレーター StringEquals
選択肢 特性
Attribute source (属性ソース) 資源
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
<鍵>

例: BLOB インデックス タグと複数値のカスタム セキュリティ属性に基づいて BLOB を読み取る

この条件により、ユーザーが BLOB インデックス タグに一致する値を持つカスタム セキュリティ属性を持っている場合、BLOB への読み取りアクセスが許可されます。

たとえば、もし Chandra がベイカーとカスケードという値を持つ Project 属性を持っている場合、Project=Baker または Project=Cascade のインデックスタグが付いている BLOB のみを読み取ることができます。

この条件は、次のアクションを含むロールの割り当てに追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

詳細については、「 タグとカスタム セキュリティ属性に基づいて BLOB への読み取りアクセスを許可する」を参照してください。

BLOB インデックス タグと複数値のカスタム セキュリティ属性に基づく BLOB への読み取りアクセスを示す条件の図。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal を使用してこの条件を追加する設定を次に示します。

条件 #1 設定
アクション ブロブの条件を読む
Attribute source (属性ソース) 資源
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
<鍵>
オペレーター ForAnyOfAnyValues:StringEquals
選択肢 特性
Attribute source (属性ソース) プリンシパル
特性 <attributeset>_<key>

環境属性

このセクションでは、ネットワーク環境または現在の日時に基づいてオブジェクトへのアクセスを制限する方法を示す例を示します。

例: 特定の日時より後の BLOB への読み取りアクセスを許可する

この条件により、2023 年 5 月 1 日の午後 1 時 (UTC) より後にのみ、BLOB コンテナー container1 への読み取りアクセスが許可されます。

既存の BLOB を読み取るための 2 つの潜在的なアクションがあります。 複数のロールの割り当てを持つプリンシパルに対してこの条件を有効にするには、次のいずれかのアクションを含むすべてのロールの割り当てにこの条件を追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

アクションを追加する

アクションを追加 を選択し、その後、次に示す表のように BLOB を読み取る サブ操作のみを選択します。

アクション サブ操作
すべての読み取り操作 Read a blob (BLOB を読み取る)

次の図に示すように、[ すべての読み取り操作 ] アクションまたはその他のサブ操作を最上位レベルで選択しないでください。

読み取り操作のみを選択した Azure portal の条件エディターのスクリーンショット。

式の作成

次の表の値を使用して、条件の式部分を作成します。

設定 価値
Attribute source (属性ソース) 資源
特性 コンテナー名
オペレーター StringEquals
価値 container1
論理演算子 'AND'
Attribute source (属性ソース) 環境
特性 UtcNow
オペレーター DateTimeGreaterThan
価値 2023-05-01T13:00:00.000Z

次の図は、Azure portal に設定が入力された後の条件を示しています。 正しい評価を確実に行うには、式をグループ化する必要があります。

特定の日時以降に許可される読み取りアクセスを示す Azure portal の条件エディターのスクリーンショット。

例: 特定のサブネットから特定のコンテナー内の BLOB へのアクセスを許可する

この条件により、仮想ネットワーク container1上のサブネット defaultからのみ、virtualnetwork1内の BLOB への読み取り、書き込み、追加、削除のアクセスが許可されます。 この例で Subnet 属性を使用するには、サブネットで Azure Storage の サービス エンドポイントが有効になっている 必要があります。

既存の BLOB への読み取り、書き込み、追加、削除のアクセスには、5 つの潜在的なアクションがあります。 複数のロールの割り当てを持つプリンシパルに対してこの条件を有効にするには、次のいずれかのアクションを含むすべてのロールの割り当てにこの条件を追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

アクションを追加する

[ アクションの追加] を選択し、次の表に示す最上位レベルのアクションのみを選択します。

アクション サブ操作
すべての読み取り操作 該当なし
Write to a blob (BLOB に書き込む) 該当なし
Create a blob or snapshot, or append data (BLOB またはスナップショットを作成するか、データを追加する) 該当なし
BLOB を削除する 該当なし

次の図に示すように、個々のサブ操作を選択しないでください。

読み取り、書き込み、追加、削除の操作の選択を示す Azure portal の条件エディターのスクリーンショット。

式の作成

次の表の値を使用して、条件の式部分を作成します。

設定 価値
Attribute source (属性ソース) 資源
特性 コンテナー名
オペレーター StringEquals
価値 container1
論理演算子 'AND'
Attribute source (属性ソース) 環境
特性 サブネット
オペレーター StringEqualsIgnoreCase
価値 /subscriptions/<your subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/virtualnetwork1/subnets/default

次の図は、Azure portal に設定が入力された後の条件を示しています。 正しい評価を確実に行うには、式をグループ化する必要があります。

特定のサブネットから許可されている特定のコンテナーへの読み取りアクセスを示す Azure portal の条件エディターのスクリーンショット。

この条件では、BLOB インデックス タグの sensitivity の値がプライベート リンク (任意のプライベート リンク) 上で high に設定されている BLOB の読み取り要求が必要です。 つまり、パブリック インターネットから機密性の高い BLOB を読み取ろうとしても許可されません。 ユーザーは、sensitivityhigh 以外の値に設定されているパブリック インターネットから BLOB を読み取ることができます。

この ABAC サンプル条件の真偽表は次のとおりです。

アクション 感受性 プライベート リンク Access
Read a blob (BLOB を読み取る) 高い はい 許可
Read a blob (BLOB を読み取る) 高い いいえ 不可
Read a blob (BLOB を読み取る) 高くない はい 許可
Read a blob (BLOB を読み取る) 高くない いいえ 許可

既存の BLOB を読み取るための 2 つの潜在的なアクションがあります。 複数のロールの割り当てを持つプリンシパルに対してこの条件を有効にするには、次のいずれかのアクションを含むすべてのロールの割り当てにこの条件を追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal のビジュアル条件エディターを使用してこの条件を追加する設定を次に示します。

アクションを追加する

アクションを追加 を選択し、その後、次に示す表のように BLOB を読み取る サブ操作のみを選択します。

アクション サブ操作
すべての読み取り操作 Read a blob (BLOB を読み取る)

次の図に示すように、他のサブ操作の最上位レベル の [すべての読み取り操作 ] アクションを選択しないでください。

読み取り操作のみを選択した Azure portal の条件エディターのスクリーンショット。

式の作成

次の表の値を使用して、条件の式部分を作成します。

グループ 設定 価値
グループ #1
Attribute source (属性ソース) 資源
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
sensitivity
オペレーター StringEquals
価値 high
論理演算子 'AND'
Attribute source (属性ソース) 環境
特性 プライベート リンク
オペレーター BoolEquals
価値 True
第1グループの終了
論理演算子 'OR'
Attribute source (属性ソース) 資源
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
sensitivity
オペレーター StringNotEquals
価値 high

次の図は、Azure portal に設定が入力された後の条件を示しています。 正しい評価を確実に行うには、式をグループ化する必要があります。

機密データのプライベート リンクを必要とする読み取りアクセスを示す Azure portal の条件エディターのスクリーンショット。

例: 特定のプライベート エンドポイントからのみコンテナーへのアクセスを許可する

この条件では、container1という名前のプライベート エンドポイントを使用して、privateendpoint1という名前のストレージ コンテナー内の BLOB に対するすべての読み取り、書き込み、追加、および削除操作を行う必要があります。 container1という名前ではない他のすべてのコンテナーについては、プライベート エンドポイント経由でアクセスする必要はありません。

既存の BLOB の読み取り、書き込み、削除には、5 つの潜在的なアクションがあります。 複数のロールの割り当てを持つプリンシパルに対してこの条件を有効にするには、次のいずれかのアクションを含むすべてのロールの割り当てにこの条件を追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。
この条件に含まれるストレージ アカウントで階層型名前空間が有効になっているか、今後有効になる可能性がある場合に追加します。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal のビジュアル条件エディターを使用してこの条件を追加する設定を次に示します。

アクションを追加する

[ アクションの追加] を選択し、次の表に示す最上位レベルのアクションのみを選択します。

アクション サブ操作
すべての読み取り操作 該当なし
Write to a blob (BLOB に書き込む) 該当なし
Create a blob or snapshot, or append data (BLOB またはスナップショットを作成するか、データを追加する) 該当なし
BLOB を削除する 該当なし

次の図に示すように、個々のサブ操作を選択しないでください。

読み取り、書き込み、追加、削除の操作の選択を示す Azure portal の条件エディターのスクリーンショット。

式の作成

次の表の値を使用して、条件の式部分を作成します。

グループ 設定 価値
グループ #1
Attribute source (属性ソース) 資源
特性 コンテナー名
オペレーター StringEquals
価値 container1
論理演算子 'AND'
Attribute source (属性ソース) 環境
特性 プライベート エンドポイント
オペレーター StringEqualsIgnoreCase
価値 /subscriptions/<your subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/privateEndpoints/privateendpoint1
第1グループの終了
論理演算子 'OR'
Attribute source (属性ソース) 資源
特性 コンテナー名
オペレーター StringNotEquals
価値 container1

次の図は、Azure portal に設定が入力された後の条件を示しています。 正しい評価を確実に行うには、式をグループ化する必要があります。

プライベート エンドポイント環境属性を持つ名前付きコンテナー内の BLOB の読み取り、書き込み、または削除を示す Azure portal の条件エディターのスクリーンショット。

例: 機密性の高い BLOB データへの読み取りアクセスを特定のプライベート エンドポイントからのみ許可し、アクセス用にタグ付けされたユーザーが許可する

この条件では、インデックス タグ の秘密度high に設定されている BLOB は、 秘密度 セキュリティ属性に一致する値を持つユーザーのみが読み取ることができる必要があります。 さらに、 privateendpoint1という名前のプライベート エンドポイント経由でアクセスする必要があります。 秘密度タグの値が異なる BLOB には、他のエンドポイントまたはインターネット経由でアクセスできます。

既存の BLOB を読み取るための 2 つの潜在的なアクションがあります。 複数のロールの割り当てを持つプリンシパルに対してこの条件を有効にするには、次のいずれかのアクションを含むすべてのロールの割り当てにこの条件を追加する必要があります。

アクション 注記
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action ロール定義にこのアクション (ストレージ BLOB データ所有者など) が含まれている場合に追加します。

Azure portal または Azure PowerShell を使用して、条件をロールの割り当てに追加できます。 ポータルには、ABAC 条件を構築するための 2 つのツール (ビジュアル エディターとコード エディター) があります。 Azure portal で 2 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、好みのポータル エディターの例を表示します。

Azure portal のビジュアル条件エディターを使用してこの条件を追加する設定を次に示します。

アクションを追加する

アクションを追加 を選択し、その後、次に示す表のように BLOB を読み取る サブ操作のみを選択します。

アクション サブ操作
すべての読み取り操作 Read a blob (BLOB を読み取る)

次の図に示すように、最上位レベルのアクションを選択しないでください。

BLOB の読み取り操作の選択を示す Azure portal の条件エディターのスクリーンショット。

式の作成

次の表の値を使用して、条件の式部分を作成します。

グループ 設定 価値
グループ #1
Attribute source (属性ソース) プリンシパル
特性 <attributeset>_<key>
オペレーター StringEquals
選択肢 特性
論理演算子 'AND'
Attribute source (属性ソース) 資源
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
<鍵>
論理演算子 'AND'
Attribute source (属性ソース) 環境
特性 プライベート エンドポイント
オペレーター StringEqualsIgnoreCase
価値 /subscriptions/<your subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Network/privateEndpoints/privateendpoint1
第1グループの終了
論理演算子 'OR'
Attribute source (属性ソース) 資源
特性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
sensitivity
オペレーター StringNotEquals
価値 high

次の図は、Azure portal に設定が入力された後の条件を示しています。 正しい評価を確実に行うには、式をグループ化する必要があります。

タグ付けされたユーザーの特定のプライベート エンドポイントで許可されている読み取りアクセスを示す、Azure portal の条件エディターのスクリーンショット。

次のステップ