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

環境 プリンシパル Request リソース
BLOB インデックス タグを使用して BLOB を読み取る tags
新しい BLOB にBLOB インデックス タグを含める必要がある tags
既存の BLOB に BLOB インデックス タグ キーが必要 tags
既存の BLOB に BLOB インデックス タグ キーと値が必要 tags
名前付きコンテナー内の BLOB の読み取り、書き込み、または削除 container name
パスを使用して名前付きコンテナー内の 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 を読み取るまたは書き込む id tags tags
BLOB インデックス タグと複数値のカスタム セキュリティ属性に基づき BLOB を読み取る id tags
特定の日付と時刻の後に BLOB への読み取りアクセスを許可する UtcNow container name
特定のサブネットから特定のコンテナー内の BLOB へのアクセスを許可する Subnet container name
機密情報を含む BLOB を読み取るためにプライベート リンク アクセスを要求する isPrivateLink tags
特定のプライベート エンドポイントからのみコンテナーへの読み取りアクセスを許可する プライベート エンドポイント container name
例: 特定のプライベート エンドポイントから、アクセス用にタグ付けされたユーザーにのみ機密性の高い BLOB データへの読み取りアクセスを許可する プライベート エンドポイント id tags

BLOB インデックス タグ

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

重要

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

Azure portal で ABAC 条件を構成すると、「DEPRECATED: Read content from a blob with tag conditions (非推奨: タグ条件を使用して 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 インデックス タグ キー (Project または Program) が少なくとも 1 つタグ付けされている必要があります。 この条件は、既存の 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 (属性ソース) Request
属性 Blob index tags [Keys] (BLOB インデックス タグ [キー])
演算子 ForAnyOfAnyValues:StringEquals
{keyName}
演算子 および
式 2
Attribute source (属性ソース) Request
属性 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 データ所有者など)。
この条件に含まれるストレージ アカウントで階層型名前空間が有効になっている場合、または今後有効にする可能性がある場合に追加します。

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

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

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

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

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

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

この条件により、readonly/* の BLOB パスを使用して、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 を読み取る、またはリストする

この条件により、readonly/* という BLOB パスを使用して、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 (属性ソース) Request
属性 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 という値、logs* という BLOB パスを使用して BLOB を読み取ることができます。 logs* の 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 (属性ソース) リソース
Attribute コンテナー メタデータ
Operator 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 (属性ソース) リソース
Attribute コンテナー メタデータ
Operator 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 を使用してこの条件を追加する設定を次に示します。

例: 現在の 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 (属性ソース) Request
属性 バージョン ID
演算子 DateTimeEquals
<blobVersionId>
式 2
演算子 または
Attribute source (属性ソース) リソース
属性 現在のバージョンかどうか
演算子 BoolEquals です。
True

例: 以前の 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 (属性ソース) Request
属性 バージョン 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 (属性ソース) Request
属性 スナップショット
Exists オン
式 2
演算子 または
Attribute source (属性ソース) リソース
属性 現在のバージョンかどうか
演算子 BoolEquals です。
True

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

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

Note

リスト BLOB インクルードは要求属性であり、リスト 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 (属性ソース) Request
Attribute リスト BLOB インクルード
Operator ForAllOfAnyValues:StringEqualsIgnoreCase
Value {'metadata', 'snapshots', 'versions'}

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

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

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

Note

リスト BLOB インクルードは要求属性であり、リスト 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 (属性ソース) Request
Attribute リスト BLOB インクルード
Operator ForAllOfAllValues:StringNotEquals
Value {'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 を使用してこの条件を追加する設定を次に示します。

暗号化スコープ

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

例: 特定の暗号化スコープを使用する 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 を読み取る、または書き込む

この条件により、ユーザーは、暗号化スコープ ScopeCustomKey1 を使用して暗号化された、sampleaccount という名前のストレージ アカウントで、BLOB を読み取ることまたは書き込むことができます。 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
<accountName>
式 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 設定
アクション BLOB 条件を読み取る
Attribute source (属性ソース) プリンシパル
属性 <attributeset>_<key>
演算子 StringEquals
オプション 属性
Attribute source (属性ソース) リソース
属性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
キー <key>

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

この条件により、ユーザーは、BLOB インデックス タグと一致する任意の値を含むカスタム セキュリティ属性を持っている場合に、BLOB に読み取りアクセスできます。

たとえば、Chandra が値 Baker と Cascade を含む Project 属性を持つ場合、Project=Baker または Project=Cascade の BLOB インデックス タグを持つ 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 設定
アクション BLOB 条件を読み取る
Attribute source (属性ソース) リソース
属性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
キー <key>
演算子 ForAnyOfAnyValues:StringEquals
オプション 属性
Attribute source (属性ソース) プリンシパル
属性 <attributeset>_<key>

環境属性

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

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

この条件により、協定世界時 (UTC) の 2023 年 5 月 1 日の午後 1 時以降にのみ 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 つのエディターを切り替えて、さまざまなビューで条件を表示できます。 [ビジュアル エディター] タブと [コード エディター] タブを切り替えて、希望するポータル エディターの例を表示します。

アクションを追加する

[追加] アクションを選択し、次の表に示すように [Read a blob](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 へのアクセスを許可する

この条件により、仮想ネットワーク virtualnetwork1 上のサブネット default からのみ、container1 内の 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 サンプル条件の真理値表は次のとおりです。

アクション 感度 プライベート リンク アクセス
Read a blob (BLOB を読み取る) high はい 許可
Read a blob (BLOB を読み取る) high いいえ 不許可
Read a blob (BLOB を読み取る) NOT high はい 許可
Read a blob (BLOB を読み取る) NOT high いいえ 許可

既存の 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 の仮想条件エディターを使用してこの条件を追加する設定を次に示します。

アクションを追加する

[追加] アクションを選択し、次の表に示すように [Read a blob](BLOB を読み取る) サブ操作のみを選択します。

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

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

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

式の作成

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

Group 設定
グループ #1
Attribute source (属性ソース) リソース
属性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
キー sensitivity
演算子 StringEquals
high
論理演算子 'AND'
Attribute source (属性ソース) 環境
属性 Is private link
演算子 BoolEquals です。
True
グループの終わり #1
論理演算子 'OR'
Attribute source (属性ソース) リソース
属性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
キー sensitivity
演算子 StringNotEquals
high

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

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

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

この条件では、container1 という名前のストレージ コンテナー内の BLOB に対するすべての読み取り、書き込み、追加、および削除操作を privateendpoint1 という名前のプライベート エンドポイントを介して行う必要があります。 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 の条件エディターのスクリーンショット。

式の作成

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

Group 設定
グループ #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 データへの読み取りアクセスを許可する

この条件では、インデックス タグ sensitivityhigh に設定されている BLOB は、sensitivity セキュリティ属性に一致する値を持つユーザーのみが読み取ることができる必要があります。 さらに、privateendpoint1 という名前のプライベート エンドポイント経由でアクセスする必要があります。 sensitivity タグの値が異なる 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 の仮想条件エディターを使用してこの条件を追加する設定を次に示します。

アクションを追加する

[追加] アクションを選択し、次の表に示すように [Read a blob](BLOB を読み取る) サブ操作のみを選択します。

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

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

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

式の作成

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

Group 設定
グループ #1
Attribute source (属性ソース) プリンシパル
属性 <attributeset>_<key>
演算子 StringEquals
オプション 属性
論理演算子 'AND'
Attribute source (属性ソース) リソース
属性 Blob index tags [Values in key] (BLOB インデックス タグ [キー内の値])
キー <key>
論理演算子 '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 の条件エディターのスクリーンショット

次のステップ