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

Azure Storage では、Azure Active Directory (Azure AD) を使用して Blob Storage および Queue storage への要求を承認することがサポートされています。Azure Storage supports using Azure Active Directory (Azure 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 Storage または Queue storage に対する要求を承認するために使用できます。The token can then be used to authorize a request against Blob or Queue storage.

Azure AD を使用して Azure Storage に対する要求を承認すると、共有キー承認よりも優れたセキュリティと使いやすさが実現されます。Authorizing requests against Azure Storage with Azure AD provides superior security and ease of use over Shared Key authorization. Microsoft では、共有キーに固有の潜在的なセキュリティの脆弱性を最小限に抑えるために、可能な場合は、BLOB アプリケーションとキュー アプリケーションで Azure AD での承認を使用することをお勧めします。Microsoft recommends using Azure AD authorization with your blob and queue applications when possible to minimize potential security vulnerabilities inherent in Shared Key.

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.

Blob Storage ではさらに、Azure AD 資格情報で署名された Shared Access Signature (SAS) を作成することもサポートされています。Blob storage additionally supports creating shared access signatures (SAS) that are signed with Azure AD credentials. 詳細については、Shared Access Signatures を使用したデータへの制限付きアクセスの許可に関するページを参照してください。For more information, see Grant limited access to data with shared access signatures.

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

Azure AD での承認は Azure Table Storage ではサポートされていません。Authorization with Azure AD is not supported for Azure Table storage. Table Storage への要求を承認するには、共有キーを使用します。Use Shared Key to authorize requests to 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 ロールを割り当てるAssign 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 およびキュー データへのアクセスに使用される一般的なアクセス許可セットを含む一連の Azure 組み込みロールは、Azure Storage によって定義されます。Azure Storage defines a set of Azure built-in 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 とキューに対する Azure の組み込みロールAzure built-in roles for blobs and queues

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

データ アクセスに対して明示的に定義されたロールによってのみ、セキュリティ プリンシパルによる BLOB データまたはキュー データへのアクセスが許可されます。Only roles explicitly defined for data access permit a security principal to access blob or queue data. 所有者共同作成者ストレージ アカウント共同作成者などの組み込みロールでは、セキュリティ プリンシパルによるストレージ アカウントの管理は許可されますが、Azure AD を通じたそのアカウント内の BLOB データまたはキュー データへのアクセスは提供されません。Built-in roles such as Owner, Contributor, and Storage Account Contributor permit a security principal to manage a storage account, but do not provide access to the blob or queue data within that account via Azure AD. ただし、ロールに Microsoft.Storage/storageAccounts/listKeys/action が含まれている場合、そのロールが割り当てられているユーザーは、アカウント アクセス キーを使って共有キー認証を使用してストレージ アカウントのデータにアクセスできます。However, if a role includes the Microsoft.Storage/storageAccounts/listKeys/action, then a user to whom that role is assigned can access data in the storage account via Shared Key authorization with the account access keys. 詳細については、「Azure portal を使用した BLOB またはキュー データへのアクセス」を参照してください。For more information, see Use the Azure portal to access blob or queue data.

データ サービスと管理サービスの両方に対する Azure Storage 用の Azure 組み込みロールの詳細については、「Azure RBAC の Azure 組み込みロール」の「ストレージ」セクションを参照してください。For detailed information about Azure built-in roles for Azure Storage for both the data services and the management service, see the Storage section in Azure built-in roles for Azure RBAC. さらに、Azure でアクセス許可を提供するさまざまな種類のロールの詳細については、「従来のサブスクリプション管理者ロール、Azure RBAC ロール、および Azure AD ロール」を参照してください。Additionally, for information about the different types of roles that provide permissions in Azure, see Classic subscription administrator roles, Azure RBAC roles, and Azure AD roles.

重要

RBAC ロールの割り当ての反映には最大で 5 分かかる可能性があります。RBAC role assignments may take up to five minutes to propagate.

Azure 組み込みロールをセキュリティ プリンシパルに割り当てる方法を学習するには、次のいずれかの記事を参照してください。To learn how to assign an Azure built-in 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. Azure カスタム ロールの作成については、「Azure カスタム ロール」を参照してください。For information about creating Azure custom roles, see Azure custom roles.

データ操作用のアクセス許可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.
  • 管理グループ。A management group. このスコープでは、ロールの割り当ては、管理グループ内のすべてのサブスクリプション内のすべてのリソース グループ内のすべてのストレージ アカウントのすべてのコンテナーまたはキューに適用されます。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 all of the subscriptions in the management group.

RBAC ロールの割り当ての詳細については、「Azure ロールベースのアクセス制御 (Azure RBAC) とは」を参照してください。For more information about RBAC role assignments and scope, see What is Azure role-based access control (Azure RBAC)?.

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.

次のステップNext steps