BLOB データにアクセスするための Azure ロールを割り当てる
Microsoft Entra は、Azure ロールベースのアクセス制御 (Azure RBAC) を通じて、セキュリティで保護されたリソースへのアクセス権を認可します。 Azure Storage では、BLOB データへのアクセスに使用される一般的なアクセス許可セットを含む一連の Azure 組み込みロールが定義されます。
Azure ロールが Microsoft Entra のセキュリティ プリンシパルに割り当てられると、Azure はそれらのリソースへのアクセスをそのセキュリティ プリンシパルに許可します。 Microsoft Entra セキュリティ プリンシパルは、ユーザー、グループ、アプリケーション サービス プリンシパル、または Azure リソースのマネージド ID である可能性があります。
Microsoft Entra ID を使って BLOB データへのアクセスを認可する方法について詳しくは、「Microsoft Entra ID を使用して BLOB へのアクセスを認可する」をご覧ください。
Note
この記事では、ストレージ アカウントの BLOB データにアクセスするために Azure ロールを割り当てる方法について説明します。 Azure Storage での管理操作のロールの割り当てについては、「Azure Storage リソース プロバイダーを使用して管理リソースにアクセスする」を参照してください。
Azure ロールを割り当てる
Azure portal、PowerShell、Azure CLI、または Azure Resource Manager テンプレートを使用して、データ アクセスのロールを割り当てることができます。
Azure portal で Microsoft Entra の資格情報を使って BLOB データにアクセスするには、ユーザーに次のロールが割り当てられている必要があります。
- ストレージ BLOB データ閲覧者、ストレージ BLOB データ共同作成者などのデータ アクセス ロール
- 少なくとも Azure Resource Manager 閲覧者ロール
これらのロールをユーザーに割り当てる方法については、「Azure portal を使用して Azure ロールを割り当てる」に記載されている手順に従ってください。
閲覧者ロールは Azure Resource Manager のロールであり、ユーザーにストレージ アカウントのリソースの表示を許可しますが、変更は許可しません。 これは Azure Storage 内のデータに読み取りアクセス許可を提供しませんが、アカウント管理リソースに対してのみです。 ユーザーが Azure portal 内の BLOB コンテナーに移動できるようにするには、閲覧者ロールが必要です。
たとえば、ストレージ BLOB データ共同作成者ロールを sample-container という名前のコンテナーのレベルで Mary というユーザーに割り当てると、Mary にはそのコンテナー内のすべての BLOB に対する読み取り、書き込み、および削除のアクセス権が付与されます。 ただし、Mary が Azure portal で BLOB を表示する場合、ストレージ BLOB データ共同作成者ロール自体は、BLOB を表示するためにポータル内でその BLOB に移動するための十分なアクセス許可を提供しません。 ポータル内を移動し、そこに表示されている他のリソースを表示するには、追加のアクセス許可が必要です。
Microsoft Entra の資格情報で Azure portal を使うには、ユーザーに閲覧者ロールが割り当てられている必要があります。 ただし、Microsoft.Storage/storageAccounts/listKeys/action アクセス許可を含むロールがユーザーに割り当てられている場合、ユーザーは共有キーによる認可を経てストレージ アカウント キーでポータルを使用できます。 ストレージ アカウント キーを使用するには、ストレージ アカウントに対して共有キー アクセスを許可する必要があります。 共有キー アクセスを許可または禁止する方法の詳細については、「Azure ストレージ アカウントの共有キーによる承認を禁止する」を参照してください。
閲覧者ロール以外の追加のアクセス許可を提供する Azure Resource Manager ロールを割り当てることもできます。 セキュリティのベスト プラクティスとして、割り当てるアクセス許可を最小限にとどめることをお勧めします。 詳細については、「Azure RBAC のベスト プラクティス」を参照してください。
注意
データ アクセスのためのロールを自分に割り当てる前に、Azure portal 経由でストレージ アカウントのデータにアクセスできるようになります。これは、Azure portal もデータ アクセスにアカウント キーを使用できるためです。 詳細については、「Azure portal で BLOB データへのアクセスの承認方法を選択する」を参照してください。
Azure Storage での Azure ロールの割り当てについては、次の点に注意してください。
- Azure Storage アカウントを作成するとき、Microsoft Entra ID を介してデータにアクセスするためのアクセス許可は自動的に割り当てられません。 Azure Storage の Azure ロールを自分自身に明示的に割り当てる必要があります。 これは、サブスクリプション、リソース グループ、ストレージ アカウント、あるいはコンテナーのレベルで割り当てることができます。
- ロールを割り当てる、またはロールの割り当てを削除する場合、変更が有効になるまでに最大 10 分かかることがあります。
- データ アクションを含む組み込みロールは、管理グループのスコープで割り当てることができます。 ただし、まれなシナリオにおいて、特定のリソースの種類に対するデータ アクションのアクセス許可が有効になるまでに、大幅な遅延 (最大 12 時間) が発生することがあります。 アクセス許可は最終的に適用されます。 データ アクションを含む組み込みロールの場合、Microsoft Entra Privileged Identity Management (PIM) などのアクセス許可を適時的にアクティブ化したり失効させたりすることが必要なシナリオでは、管理グループ スコープでのロールの割り当ての追加または削除は推奨されません。
- ストレージ アカウントが Azure Resource Manager 読み取り専用ロックでロックされている場合、このロックによって、スコープがストレージ アカウントまたはコンテナーに設定された Azure ロールを割り当てることはできなくなります。
- Microsoft Entra ID 経由でデータにアクセスするための適切なアクセス許可を設定し、データにアクセスできない場合 (たとえば、"AuthorizationPermissionMismatch" エラーが発生している場合)。 Microsoft Entra ID で行ったアクセス許可の変更がレプリケートされるのに十分な時間を割り当て、アクセスをブロックする拒否の割り当てが存在しないことを確認します。「Azure 拒否割り当てについて」を参照してください。
Note
BLOB データにきめ細かくアクセスするための Azure RBAC カスタム ロールを作成できます。 詳細については、「Azure カスタム ロール」を参照してください。