Azure Active Directory を使用して Azure BLOB およびキューへのアクセスを承認しますAuthorize access to Azure blobs and queues using Azure Active Directory

Azure Storage では、Azure Active Directory (AD) を使用した BLOB および Queue Storage に対する要求の承認をサポートしています。Azure Storage supports using Azure Active Directory (AD) to authorize requests to Blob and Queue storage. Azure AD では、ロールベースのアクセス制御 (RBAC) を使用して、サービス プリンシパル (ユーザー、グループ、またはアプリケーションのサービス プリンシパルである可能性があります) にアクセス許可を付与します。With Azure AD, you can use role-based access control (RBAC) to grant permissions to a security principal, which may be a user, group, or application service principal. セキュリティ プリンシパルは、Azure AD によって認証されて、OAuth 2.0 トークンを返します。The security principal is authenticated by Azure AD to return an OAuth 2.0 token. トークンは、BLOB または Queue Storage のリソースにアクセスする要求を承認するために使用できます。The token can be used to authorize a request to access a resource in Blob or Queue storage.

Azure AD から返された OAuth 2.0 トークンを使用してユーザーまたはアプリケーションを承認する方法は、セキュリティと使いやすさの面で、共有キー承認や共有アクセス署名 (SAS) よりも優位です。Authorizing users or applications using an OAuth 2.0 token returned by Azure AD provides superior security and ease of use over Shared Key authorization and shared access signatures (SAS). Azure AD を使用すれば、アカウント アクセス キーをコードに保存する必要がないため、潜在的なセキュリティ脆弱性のリスクを排除できます。With Azure AD, there is no need to store the account access key with your code and risk potential security vulnerabilities. アプリケーションで共有キー承認を引き続き使うことはできますが、Azure AD を使うと、コードでアカウント アクセス キーを保存する必要がなくなります。While you can continue to use Shared Key authorization with your applications, using Azure AD circumvents the need to store your account access key with your code. Shared Access Signature (SAS) を使ってストレージ アカウント内のリソースに対するきめ細かいアクセスの許可を続けることもできますが、Azure AD は、SAS トークンを管理したり侵害された SAS の取り消しを心配したりする必要なしに、同様の機能を提供します。You can also continue to use shared access signatures (SAS) to grant fine-grained access to resources in your storage account, but Azure AD offers similar capabilities without the need to manage SAS tokens or worry about revoking a compromised SAS. Azure Storage アプリケーションでは、できる限り Azure AD 承認機能を使用することをお勧めします。Microsoft recommends using Azure AD authorization with your Azure Storage applications when possible.

Azure AD での承認は、すべてのパブリック リージョンおよび国内クラウド内のすべての汎用および BLOB ストレージ アカウントに対して使用できます。Authorization with Azure AD is available for all general-purpose and Blob storage accounts in all public regions and national clouds. Azure AD の認可は、Azure Resource Manager デプロイ モデルで作成されたストレージ アカウントにおいてのみサポートされます。Only storage accounts created with the Azure Resource Manager deployment model support Azure AD authorization. Azure AD での承認は Azure Table Storage ではサポートされていません。Authorization with Azure AD is not supported for Azure Table storage.

BLOB とキューに対する Azure AD の概要Overview of Azure AD for blobs and queues

セキュリティ プリンシパル (ユーザー、グループ、またはアプリケーション) が BLOB またはキューのリソースにアクセスしようとすると、BLOB が匿名アクセスに利用できる場合を除き、要求は承認される必要があります。When a security principal (a user, group, or application) attempts to access a blob or queue resource, the request must be authorized, unless it is a blob available for anonymous access. Azure AD では、リソースへのアクセスは 2 段階のプロセスです。With Azure AD, access to a resource is a two-step process. まず、セキュリティ プリンシパルの ID が認証され、OAuth 2.0 トークンが返されます。First, the security principal's identity is authenticated and an OAuth 2.0 token is returned. 次に、そのトークンが BLOB サービスまたは Queue サービスへの要求の一部として渡され、指定されたリソースへのアクセスを承認するためにサービスによって使用されます。Next, the token is passed as part of a request to the Blob or Queue service and used by the service to authorize access to the specified resource.

認証の手順では、アプリケーションが実行時に OAuth 2.0 アクセス トークンを要求する必要があります。The authentication step requires that an application request an OAuth 2.0 access token at runtime. アプリケーションが Azure VM、仮想マシン スケール セット、または Azure Functions アプリなどの Azure エンティティ内から実行されている場合、マネージド ID を使用して BLOB またはキューにアクセスできます。If an application is running from within an Azure entity such as an Azure VM, a virtual machine scale set, or an Azure Functions app, it can use a managed identity to access blobs or queues. Azure BLOB サービスまたは Queue サービスに対するマネージド ID によって作成された要求を承認する方法については、「Azure リソースに対するマネージド ID を使用して BLOB およびキューへのアクセスを認証する」を参照してください。To learn how to authorize requests made by a managed identity to the Azure Blob or Queue service, see Authorize access to blobs and queues with Azure Active Directory and managed identities for Azure Resources.

承認の手順では、セキュリティ プリンシパルに 1 つ以上の RBAC ロールを割り当てる必要があります。The authorization step requires that one or more RBAC roles be assigned to the security principal. BLOB およびキューのデータへの一般的なアクセス許可セットを含む RBAC ロールは、Azure Storage によって提供されます。Azure Storage provides RBAC roles that encompass common sets of permissions for blob and queue data. セキュリティ プリンシパルに割り当てられたロールによって、そのプリンシパルが持つアクセス許可が決定されます。The roles that are assigned to a security principal determine the permissions that the principal will have. Azure Storage 用の RBAC ロールの割り当てについては、RBAC で Azure Storage データへのアクセス許可を管理する方法に関するページを参照してください。To learn more about assigning RBAC roles for Azure Storage, see Manage access rights to storage data with RBAC.

Azure BLOB サービスまたは Queue サービスに対する要求を作成するネイティブ アプリケーションと Web アプリケーションは、Azure AD でアクセスを承認することもできます。Native applications and web applications that make requests to the Azure Blob or Queue service can also authorize access with Azure AD. アクセス トークンを要求し、それを使用して BLOB またはキューのデータへの要求を認可する方法については、Azure Storage アプリケーションからの Azure AD による Azure Storage へのアクセスの承認に関する記事をご覧ください。To learn how to request an access token and use it to authorize requests for blob or queue data, see Authorize access to Azure Storage with Azure AD from an Azure Storage application.

アクセス権に対して RBAC ロールを割り当てるAssigning RBAC roles for access rights

Azure Active Directory (Azure AD) では、ロールベースのアクセス制御 (RBAC) を通じて、セキュリティで保護されたリソースへのアクセス権が承認されます。Azure Active Directory (Azure AD) authorizes access rights to secured resources through role-based access control (RBAC). BLOB およびキューのデータへのアクセスに使用される一般的なアクセス許可セットを含む一連の組み込み RBAC ロールは、Azure Storage によって定義されます。Azure Storage defines a set of built-in RBAC roles that encompass common sets of permissions used to access blob and queue data. BLOB およびキューのデータにアクセスするためのカスタム ロールを定義することもできます。You can also define custom roles for access to blob and queue data.

RBAC ロールが Azure AD セキュリティ プリンシパルに割り当てられると、Azure によりそのセキュリティ プリンシパルのリソースへのアクセス権が付与されます。When an RBAC role is assigned to an Azure AD security principal, Azure grants access to those resources for that security principal. アクセスのスコープは、サブスクリプション、リソース グループ、ストレージ アカウント、あるいは個別のコンテナーまたはキューのレベルで指定できます。Access can be scoped to the level of the subscription, the resource group, the storage account, or an individual container or queue. Azure AD セキュリティ プリンシパルは、Azure リソースのユーザー、グループ、アプリケーション サービス プリンシパル、またはマネージド ID の場合があります。An Azure AD security principal may be a user, a group, an application service principal, or a managed identity for Azure resources.

BLOB とキューの組み込み RBAC ロールBuilt-in RBAC roles for blobs and queues

Azure では、BLOB とキューのデータへの Azure AD と OAuth を使ったアクセスを承認するために、次の組み込み RBAC ロールが提供されています。Azure provides the following built-in RBAC roles for authorizing access to blob and queue data using Azure AD and OAuth:

注意

RBAC ロールの割り当ての反映には最大で 5 分かかる場合があることに留意してください。Keep in mind that RBAC role assignments may take up to five minutes to propagate.

組み込み RBAC ロールをセキュリティ プリンシパルに割り当てる方法を学習するには、次のいずれかの記事を参照してください。To learn how to assign a built-in RBAC role to a security principal, see one of the following articles:

Azure Storage の組み込みロールの定義方法については、「ロール定義について」を参照してください。For more information about how built-in roles are defined for Azure Storage, see Understand role definitions. カスタム RBAC ロールの作成の詳細については、Azure のロールベースのアクセス制御のためにカスタム ロールを作成する方法に関するページを参照してください。For information about creating custom RBAC roles, see Create custom roles for Azure Role-Based Access Control.

データ操作用のアクセス許可Access permissions for data operations

特定の BLOB サービスまたは Queue サービスの操作を呼び出すために必要なアクセス許可の詳細については、「Permissions for calling blob and queue data operations」 (BLOB とキューのデータ操作を呼び出すためのアクセス許可) を参照してください。For details on the permissions required to call specific Blob or Queue service operations, see Permissions for calling blob and queue data operations.

リソースのスコープResource scope

セキュリティ プリンシパルに RBAC ロールを割り当てる前に、セキュリティ プリンシパルに必要なアクセスのスコープを決定します。Before you assign an RBAC role to a security principal, determine the scope of access that the security principal should have. ベスト プラクティスとしては、常にできるだけ狭いスコープのみを付与するのが最善の方法です。Best practices dictate that it's always best to grant only the narrowest possible scope.

次の一覧で、Azure の BLOB とキューのリソースへのアクセスのスコープとして指定できるレベルを、最も狭いスコープから順に示します。The following list describes the levels at which you can scope access to Azure blob and queue resources, starting with the narrowest scope:

  • 個々のコンテナー。An individual container. このスコープでは、ロールの割り当ては、コンテナー内のすべての BLOB と、コンテナーのプロパティおよびメタデータに適用されます。At this scope, a role assignment applies to all of the blobs in the container, as well as container properties and metadata.
  • 個々のキュー。An individual queue. このスコープでは、ロールの割り当ては、キュー内のメッセージと、キューのプロパティおよびメタデータに適用されます。At this scope, a role assignment applies to messages in the queue, as well as queue properties and metadata.
  • ストレージ アカウント。The storage account. このスコープでは、ロールの割り当ては、すべてのコンテナーとその BLOB、またはすべてのキューとそのメッセージに適用されます。At this scope, a role assignment applies to all containers and their blobs, or to all queues and their messages.
  • リソース グループ。The resource group. このスコープでは、ロールの割り当ては、リソース グループ内のすべてのストレージ アカウントのすべてのコンテナーまたはキューに適用されます。At this scope, a role assignment applies to all of the containers or queues in all of the storage accounts in the resource group.
  • サブスクリプション。The subscription. このスコープでは、ロールの割り当ては、サブスクリプション内のすべてのリソース グループ内の、すべてのストレージ アカウントのすべてのコンテナーまたはキューに適用されます。At this scope, a role assignment applies to all of the containers or queues in all of the storage accounts in all of the resource groups in the subscription.

重要

サブスクリプションに Azure Databricks の名前空間が含まれている場合は、サブスクリプション スコープのロールの割り当ては、BLOB およびキューのデータへのアクセスの許可をブロックされます。If your subscription includes an Azure DataBricks namespace, roles assigned at the subscription scope will be blocked from granting access to blob and queue data.

Azure AD アカウントでのアクセス データAccess data with an Azure AD account

Azure portal、PowerShell、または Azure CLI 経由での BLOB またはキューのデータへのアクセスは、ユーザーの Azure AD アカウントを使用するか、アカウント アクセス キー (共有キーによる承認) を使用することによって承認できます。Access to blob or queue data via the Azure portal, PowerShell, or Azure CLI can be authorized either by using the user's Azure AD account or by using the account access keys (Shared Key authorization).

Azure portal からのデータ アクセスData access from the Azure portal

Azure portal では、Azure AD アカウントまたはアカウント アクセス キーのいずれかを使用して、Azure ストレージ アカウントの BLOB とキューのデータにアクセスできます。The Azure portal can use either your Azure AD account or the account access keys to access blob and queue data in an Azure storage account. Azure portal で使用する認証スキームは、お客様に割り当てられている RBAC ロールに応じて異なります。Which authorization scheme the Azure portal uses depends on the RBAC roles that are assigned to you.

BLOB またはキューのデータにアクセスしようとすると、Azure portal でポータルはまずお客様に Microsoft.Storage/storageAccounts/listkeys/action で RBAC ロールが割り当てられているかどうかを確認します。When you attempt to access blob or queue data, the Azure portal first checks whether you have been assigned an RBAC role with Microsoft.Storage/storageAccounts/listkeys/action. このアクションを持つロールが割り当てられている場合、Azure portal は共有キー承認によって BLOB およびキューのデータにアクセスするためにアカウント キーを使用します。If you have been assigned a role with this action, then the Azure portal uses the account key for accessing blob and queue data via Shared Key authorization. このアクションを持つロールが割り当てられていない場合、Azure portal は Azure AD アカウントを使用してデータへのアクセスを試みます。If you have not been assigned a role with this action, then the Azure portal attempts to access data using your Azure AD account.

Azure AD アカウントを使用して Azure Portal から BLOB またはキュー データにアクセスするには、その BLOB やキュー データにアクセスするためのアクセス許可が必要です。また、Azure Portal でストレージ アカウント リソース内を移動するためのアクセス許可も必要です。To access blob or queue data from the Azure portal using your Azure AD account, you need permissions to access blob and queue data, and you also need permissions to navigate through the storage account resources in the Azure portal. Azure Storage によって提供される組み込みロールでは BLOB やキュー リソースへのアクセス権が付与されますが、ストレージ アカウント リソースへのアクセス許可は付与されません。The built-in roles provided by Azure Storage grant access to blob and queue resources, but they don't grant permissions to storage account resources. このため、ポータルへのアクセスには、スコープがストレージ アカウント以上のレベルに設定された、閲覧者ロールなどの Azure Resource Manager ロールの割り当ても必要です。For this reason, access to the portal also requires the assignment of an Azure Resource Manager role such as the Reader role, scoped to the level of the storage account or higher. リーダー役割は最も制限の厳しいアクセス許可を付与しますが、ストレージ アカウントの管理リソースへのアクセス権を付与する別の Azure Resource Manager ロールも受け入れることができます。The Reader role grants the most restricted permissions, but another Azure Resource Manager role that grants access to storage account management resources is also acceptable. Azure AD アカウントを使用した Azure portal 内のデータ アクセスのためにユーザーにアクセス許可を割り当てる方法の詳細については、「Azure portal で RBAC を使用して Azure BLOB とキューのデータへのアクセスを付与する」を参照してください。To learn more about how to assign permissions to users for data access in the Azure portal with an Azure AD account, see Grant access to Azure blob and queue data with RBAC in the Azure portal.

Azure Portal では、コンテナーまたはキューに移動すると、どの承認スキームが使用されているかが示されます。The Azure portal indicates which authorization scheme is in use when you navigate to a container or queue. ポータル内でのデータ アクセスの詳細については、「Azure portal を使用した BLOB またはキュー データへのアクセス」を参照してください。For more information about data access in the portal, see Use the Azure portal to access blob or queue data.

PowerShell または Azure CLI からのデータ アクセスData access from PowerShell or Azure CLI

Azure CLI と PowerShell では、Azure AD の資格情報を使ったサインインをサポートします。Azure CLI and PowerShell support signing in with Azure AD credentials. サインインした後、セッションはその資格情報で実行されます。After you sign in, your session runs under those credentials. 詳細については、「Azure AD ID を使用し、CLI または PowerShell で BLOB とキューのデータにアクセスする」を参照してください。To learn more, see Run Azure CLI or PowerShell commands with Azure AD credentials to access blob or queue data.

SMB を使用した Azure Files の Azure Active Directory 認証Azure AD authorization over SMB for Azure Files

Azure Files はドメイン参加 VM に関してのみ SMB 経由の Azure AD での承認をサポートしています (プレビュー)。Azure Files supports authorization with Azure AD over SMB for domain-joined VMs only (preview). Azure Files に対して SMB 経由で Azure AD を使用する詳細については、「SMB を使用した Azure Files の Azure Active Directory 認証の概要 (プレビュー)」を参照してください。To learn about using Azure AD over SMB for Azure Files,see Overview of Azure Active Directory authorization over SMB for Azure Files (preview).

次の手順Next steps