Azure Storage の承認オプション
自社の患者の画像診断 Web アプリを拡張する前に、安全なアクセスに関するすべてのオプションを確認しましょう。 Shared Access Signature (SAS) を使用すると、クライアントにリソースへのアクセスを安全に許可することができます。 しかし、これはアクセス権を付与する唯一の方法ではありません。 状況によっては、他のオプションの方が組織により適している場合があります。
あなたの会社では、単なる SAS 認証方法以上のものを利用できる可能性があります。
このユニット内では、Azure Storage 内に格納されているファイルへのアクセスを認証するための、さまざまな方法を確認します。
Azure Storage へのアクセス
クライアントは、Azure Storage 内に格納されているファイルに HTTP/HTTPS 経由でアクセスします。 Azure は、その格納されているデータにアクセスするための各クライアントの認可要求をチェックします。 BLOB ストレージへのアクセスに使用できる 4 つのオプションは、次のとおりです。
- パブリック アクセス
- Microsoft Entra ID
- 共有キー
- Shared Access Signature (SAS)
パブリック アクセス
パブリック アクセスは、コンテナーと BLOB の匿名パブリック読み取りアクセスとも呼ばれます。
パブリック アクセスに影響を与える 2 つの別個の設定があります。
ストレージ アカウント。 AllowBlobPublicAccess プロパティを設定して、パブリック アクセスを許可するようにストレージ アカウントを構成します。 true に設定すると、コンテナーのパブリック アクセス設定も設定されている場合にのみ、BLOB データをパブリック アクセスに使用できます。
コンテナー。 匿名アクセスは、ストレージ アカウントに対して匿名アクセスが許可されている場合にのみ有効にすることができます。 コンテナーには、パブリック アクセスに使用できる 2 つの設定があります。"BLOB のパブリック読み取りアクセス" と "コンテナーとその BLOB のパブリック読み取りアクセス" です。 匿名アクセスは、個々の BLOB ではなく、コンテナー レベルで制御されます。 そのため、一部のファイルをセキュリティで保護する場合は、パブリック読み取りアクセスが許可されていない別のコンテナー内にそれらを配置する必要があります。
匿名パブリック アクセスを有効にするには、ストレージ アカウントとコンテナーの両方の設定が必要です。 このアプローチの利点は、ファイルへのアクセスを必要とするクライアントとキーを共有する必要がないことです。 SAS を管理する必要もありません。
Microsoft Entra ID
コードに資格情報を保存せずに Azure Storage に安全にアクセスするには、Microsoft Entra オプションを使います。 AD 承認では 2 段階のアプローチを使用します。 最初に、セキュリティ プリンシパルを認証します。成功すると OAuth 2.0 トークンが返されます。 このトークンは、その後、要求されたリソースへの認可を有効にするために、Azure Storage に渡されます。
マネージド ID でアプリを実行している場合、またはセキュリティ プリンシパルを使用している場合は、この形式の認証を使用します。
共有キー
Azure Storage によって、作成されたすべてのストレージ アカウントに対して 512 ビットのアクセス キーが 2 つ作成されます。 これらのキーを共有して、クライアントにストレージ アカウントへのアクセスを許可します。 これらのキーは、ストレージへのルート アクセスと同等のアクセス権を任意のユーザーに許可します。
ストレージ アカウントのセキュリティを確保するために定期的なスケジュールでキーを簡単にローテーションできるため、Azure Key Vault でストレージ キーを管理することをお勧めします。
共有アクセス署名
SAS を使用すると、読み取り専用または読み取り/書き込みアクセス、有効期限 (これを過ぎると、選択されたリソースへのクライアントからのアクセスを SAS で有効にできなくなります) など、Azure Storage 内のファイルへの詳細なアクセスを許可できます。 共有アクセス署名は、ストレージ リソースに対するアクセス許可を付与するキーであり、アカウント キーと同じ方法で保護する必要があります。
Azure Storage では、次の 3 種類の Shared Access Signature がサポートされています。
- ユーザー委任 SAS: BLOB ストレージにのみ使用できます。また、Microsoft Entra 資格情報で保護されています。
- サービス SAS: サービス SAS は、ストレージ アカウント キーを使用して保護されます。 サービス SAS では、Azure Storage サービス (BLOB、Queue、Table、File) のいずれかのリソースへのアクセスを委任します。
- アカウント SAS: アカウント SAS は、ストレージ アカウント キーで保護されます。 アカウント SAS ではサービス SAS と同じように制御できますが、サービス レベルの操作 (Get Service Stats など) へのアクセスを制御することもできます。
管理する必要のあるすべてのオプション (開始時刻、有効期限、アクセス許可など) を指定することによって、SAS アドホックを作成できます。
サービス SAS を作成する予定の場合、保管されているアクセス ポリシーにそれを関連付けるためのオプションもあります。 保管されているアクセス ポリシーは、最大 5 つのアクティブな SAS に関連付けることができます。 保管されているアクセス ポリシー レベルでアクセスと有効期限を制御することができます。 このアプローチは、有効期限の変更や SAS の取り消しをきめ細かく制御する必要がある場合に適しています。 アドホック SAS の取り消しまたは変更を行う唯一の方法は、ストレージ アカウント キーを変更することです。