次の方法で共有


Azure CLI を使用して Azure ロールの割り当て条件を追加または編集する

Azure ロールの割り当て条件は、必要に応じてロールの割り当てに追加して、よりきめ細かなアクセス制御を提供できる追加のチェックです。 たとえば、オブジェクトを読み取るために特定のタグを持っている必要があるという条件を追加できます。 この記事では、Azure CLI を使用してロールの割り当ての条件を追加、編集、一覧表示、または削除する方法について説明します。

前提条件

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

条件を追加する

ロールの割り当て条件を追加するには、 az role assignment create を使用します。 az role assignment create コマンドには、条件に関連する次のパラメーターが含まれています。

パラメーター タイプ 説明
condition ユーザーにアクセス許可を付与できる条件。
condition-version 条件構文のバージョン。 --condition-versionなしで--conditionが指定されている場合、バージョンは既定値の 2.0 に設定されます。

次の例は、条件を使用して ストレージ BLOB データ閲覧者 ロールを割り当てる方法を示しています。 この条件では、コンテナー名が "blobs-example-container" と等しいかどうかを確認します。

az role assignment create --role "Storage Blob Data Reader" --scope /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName --assignee "user1@contoso.com" \
--description "Read access if container name equals blobs-example-container" \
--condition "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))" \
--condition-version "2.0"

出力例を次に示します。

{
    "canDelegate": null,
    "condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))",
    "conditionVersion": "2.0",
    "description": "Read access if container name equals blobs-example-container",
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
    "name": "{roleAssignmentId}",
    "principalId": "{userObjectId}",
    "principalType": "User",
    "resourceGroup": "{resourceGroup}",
    "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
    "scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
    "type": "Microsoft.Authorization/roleAssignments"
}

条件を編集する

既存のロールの割り当て条件を編集するには、 az role assignment update と JSON ファイルを入力として使用します。 条件と説明が更新される JSON ファイルの例を次に示します。 編集できるのは、 conditionconditionVersion、および description プロパティだけです。 ロールの割り当て条件を更新するには、すべてのプロパティを指定する必要があります。

{
    "canDelegate": null,
    "condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
    "conditionVersion": "2.0",
    "description": "Read access if container name equals blobs-example-container or blobs-example-container2",
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
    "name": "{roleAssignmentId}",
    "principalId": "{userObjectId}",
    "principalType": "User",
    "resourceGroup": "{resourceGroup}",
    "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
    "scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
    "type": "Microsoft.Authorization/roleAssignments"
}

az role assignment update を使用して、ロールの割り当ての条件を更新します。

az role assignment update --role-assignment "./path/roleassignment.json"

出力例を次に示します。

{
    "canDelegate": null,
    "condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container' OR @Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container2'))",
    "conditionVersion": "2.0",
    "description": "Read access if container name equals blobs-example-container or blobs-example-container2",
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
    "name": "{roleAssignmentId}",
    "principalId": "{userObjectId}",
    "principalType": "User",
    "resourceGroup": "{resourceGroup}",
    "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
    "scope": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}",
    "type": "Microsoft.Authorization/roleAssignments"
}

条件を一覧表示する

ロールの割り当て条件を一覧表示するには、 az role assignment list を使用します。 詳細については、「 Azure CLI を使用して Azure ロールの割り当てを一覧表示する」を参照してください。

条件を削除する

ロールの割り当て条件を削除するには、ロールの割り当て条件を編集し、 condition プロパティと condition-version プロパティの両方を空の文字列 ("") または nullに設定します。

または、ロールの割り当てと条件の両方を削除する場合は、 az role assignment delete コマンドを使用できます。 詳細については、「Azure ロールの割り当ての削除」を参照してください。

次のステップ