Azure Storage 内のデータへのアクセスを承認する

ストレージ アカウントのデータにアクセスするたびに、クライアント アプリケーションは HTTP/HTTPS で Azure Storage に要求を行います。 既定では、Azure Storage のすべてのリソースがセキュリティで保護されており、セキュリティ保護されたリソースへのすべての要求には承認される必要があります。 認可により、クライアント アプリケーションにはストレージ アカウント内の特定のリソースにアクセスするための適切なアクセス許可があることが保証されます。

データ操作の認可について

次の表は、データへのアクセスを承認するために Azure Storage で用意されているオプションをまとめたものです。

Azure の成果物 共有キー (ストレージ アカウント キー) Shared Access Signature (SAS) Microsoft Entra ID オンプレミス Active Directory Domain Services 匿名読み取りアクセス ローカル ユーザーの Storage
Azure BLOB サポートされています サポートされています サポートされています サポートされていません サポートはされていますが、お勧めしません SFTP でのみ、サポートされます
Azure Files (SMB) サポートされています サポートなし クラウド専用の Microsoft Entra Domain Services またはハイブリッド ID 用の Microsoft Entra Kerberos でのみサポートされています サポートされています。資格情報は Microsoft Entra ID と同期する必要があります サポートされていません サポートされていません
Azure Files (REST) サポートされています サポートされています サポートされています サポートされていません サポートされていません サポートされていません
Azure キュー サポートされています サポートされています サポートされています サポートされていません サポートされていません サポートされていません
Azure テーブル サポートされています サポートされています サポートされています サポートされていません サポートされていません サポートされていません

ここでは、各認証オプションについて簡単に説明します。

  • BLOB、ファイル、キュー、およびテーブル用の共有キー認証。 共有キーを使用するクライアントは、ストレージ アカウントのアクセス キーを使用して署名されたすべての要求にヘッダーを渡します。 詳細については、共有キーによる承認に関するページを参照してください。

    Microsoft では、ストレージ アカウントに対して共有キーによる認可を禁止することをお勧めします。 共有キーの承認が禁止されている場合、クライアントは、そのストレージ アカウントのデータに対する要求を承認するために Microsoft Entra ID またはユーザー委任 SAS を使用する必要があります。 詳細については、Azure ストレージ アカウントの共有キーによる認可の禁止に関するページを参照してください。

  • BLOB、ファイル、キュー、およびテーブル用の共有アクセス署名。 共有アクセス署名 (SAS) には、ストレージ アカウント内のリソースに対する、署名された URL を介した制限付きの委任アクセス機能があります。 署名された URL は、リソースに付与されるアクセス許可と、署名が有効な間隔を指定します。 サービス SAS またはアカウント SAS はアカウント キーで署名されます。一方、ユーザー委任 SAS は Microsoft Entra 資格情報で署名され、BLOB にのみ適用されます。 詳細については、共有アクセス署名 (SA) の使用 を参照してください。

  • BLOB、キュー、テーブル リソースへの要求を承認するための Microsoft Entra 統合。 Microsoft では、Microsoft Entra 資格情報を使用して、可能な限りデータへの要求を承認し、最適なセキュリティと使いやすさを実現することをお勧めします。 Microsoft Entra 統合の詳細については、BLOBキュー、またはテーブル リソースに関する記事を参照してください。

    Azure のロールベースのアクセス制御 (Azure RBAC) を使用して、ストレージ アカウント内の BLOB、キュー、テーブル リソースへのセキュリティ プリンシパルのアクセス許可を管理できます。 Azure の属性ベースのアクセス制御 (ABAC) を使用して、BLOB リソースの Azure ロールの割り当てに条件を追加することもできます。

    RBAC の詳細については、「Azure ロールベースのアクセス制御 (Azure RBAC) とは」を参照してください。

    ABAC とその機能の状態の詳細については、次を参照してください。

    Azure の属性ベースのアクセス制御 (Azure ABAC) とは

    ABAC 条件機能の状態

    Azure Storage の ABAC 条件機能の状態

  • Azure Files の Microsoft Entra Domain Services 認証。 Azure Files では、Microsoft Entra Domain Services を介したサーバー メッセージ ブロック (SMB) の ID ベースの承認がサポートされています。 Azure RBAC を使用して、ストレージ アカウント内の Azure Files リソースへのクライアントのアクセスを細かく制御できます。 ドメイン サービスを利用した Azure Files 認証に関する詳細については、概要のページを参照してください。

  • Azure Files 用のオンプレミス Active Directory Domain Services (AD DS、またはオンプレミス AD DS) 認証。 Azure Files では、AD DS を使用した SMB での ID ベースの承認がサポートされています。 AD DS 環境は、オンプレミス マシンまたは Azure VM でホストできます。 Files への SMB アクセスは、ドメインに参加しているマシン (オンプレミスまたは Azure) からの AD DS 資格情報を使用してサポートされます。 共有レベルのアクセス制御には Azure RBAC の組み合わせを、ディレクトリまたはファイル レベルのアクセス許可の適用には NTFS DACL を使用できます。 ドメイン サービスを利用した Azure Files 認証に関する詳細については、概要のページを参照してください。

  • BLOB データの匿名読み取りアクセスは、サポートされていますが、お勧めしません。 匿名アクセスが構成されている場合、クライアントは承認なしで BLOB データを読み取ることができます。 すべてのストレージ アカウントに対して匿名アクセスを無効にすることをお勧めします。 詳細については、「概要: BLOB データの匿名読み取りアクセスの修復」を参照してください。

  • Storage ローカル ユーザー は、SFTP を使用した BLOB または SMB を使用したファイルへのアクセスに使用できます。 Storage ローカル ユーザーは、承認のためのコンテナー レベルのアクセス許可をサポートします。 SFTP でストレージ ローカル ユーザーを使用する方法の詳細については、SSH ファイル転送プロトコル (SFTP) を使用して Azure Blob Storage に接続するを参照してください。

アクセス キーの保護

ストレージ アカウント アクセス キーは、ストレージ アカウントの構成とデータへのフル アクセスを提供します。 アクセス キーは常に慎重に保護してください。 キーを安全に管理およびローテーションするには、Azure Key Vault を使用します。 共有キーへのアクセスにより、ストレージ アカウントの構成とそのデータへのフル アクセス権がユーザーに付与されます。 共有キーへのアクセスは慎重に制限し、監視する必要があります。 Microsoft Entra ID ベースの承認を使用できないシナリオでは、アクセス範囲が制限された SAS トークンを使用します。 アクセス キーをハードコーディングしたり、他のユーザーがアクセスできるプレーンテキストで保存したりしないでください。 キーが侵害された可能性があると思われる場合は、キーをローテーションしてください。

重要

Microsoft では、BLOB、キュー、テーブルのデータに対する要求を承認する場合、アカウント キー (共有キーの承認) を使用するのではなく、可能であれば Microsoft Entra ID を使用することをお勧めします。 Microsoft Entra ID を使用した承認によって、共有キーの承認より優れたセキュリティと使いやすさが提供されます。 アプリケーションからの Microsoft Entra 承認の使用の詳細については、Azure サービスで .NET アプリケーションを認証する方法に関するページを参照してください。 SMB Azure ファイル共有の場合、Microsoft では、オンプレミスの Active Directory Domain Services (AD DS) 統合または Microsoft Entra Kerberos 認証を使用することをお勧めします。

ユーザーが共有キーを使用してストレージ アカウント内のデータにアクセスできないようにするには、ストレージ アカウントに対する共有キーの認可を禁止します。 セキュリティのベスト プラクティスとして、必要最小限の特権でデータに細かくアクセスすることをお勧めします。 OAuth をサポートするシナリオでは、Microsoft Entra ID ベースの承認を使用する必要があります。 SMB 経由の Azure Files には Kerberos または SMTP を使用する必要があります。 REST 経由の Azure Files の場合は、SAS トークンを使用できます。 共有キー アクセスは、不注意による使用を防ぐために、必要でない場合は無効にする必要があります。 詳細については、Azure ストレージ アカウントの共有キーによる認可の禁止に関するページを参照してください。

Microsoft Entra の条件付きアクセス ポリシーを使用して Azure Storage アカウントを保護するには、ストレージ アカウントに対する共有キーの承認を禁止する必要があります。

共有キー アクセスが無効になっていて、診断ログに共有キーの認可が報告されている場合は、ストレージへのアクセスに信頼されたアクセスが使用されていることを示しています。 詳細については、「サブスクリプションに登録されているリソースへの信頼されたアクセス」を参照してください。

次のステップ