ある企業がストレージアカウントに SAS(Shared Access Signature)を設計している。セキュリティのベストプラクティスとして正しいものを 2 つ選択してください。
- A. SAS はストアドアクセスポリシーに紐づけることで、SAS 発行後でも有効期限や権限を変更・取り消しできる
- B. アカウント SAS よりサービス SAS またはユーザー委任 SAS を優先して使用することで、最小権限の原則を実現できる
- C. ユーザー委任 SAS はアカウントキーで署名されるため、アカウントキーが漏洩した場合のリスクを低減できる
- D. SAS URI を HTTPS ではなく HTTP で使用することで、証明書エラーによる接続問題を防げる
- E. SAS の有効期限は可能な限り長く設定することで、有効期限切れによる運用トラブルを防げる
解答と解説を見る
正解: A, B
アカウント SAS はストレージアカウント全体のサービスに対する広い権限を持てるため、特定のサービス(BLOB など)に限定したサービス SAS や Entra ID 署名のユーザー委任 SAS を優先することで最小権限の原則を実現できる。ストアドアクセスポリシーに紐づけた SAS は、ポリシーを変更・削除することで発行済み SAS を事後に失効させたり期限変更できる柔軟性がある。選択肢 E は誤りで、SAS は必要最小限の有効期限に設定すべきである(長期 SAS は漏洩時のリスクが大きい)。選択肢 C は誤りで、ユーザー委任 SAS は Entra ID トークンで署名されるため、アカウントキーとは独立しており、アカウントキー漏洩の影響を受けない(選択肢の説明が逆)。選択肢 D は誤りで、SAS を HTTP で使用することはセキュリティリスクであり、必ず HTTPS を強制すべきである(Azure もデフォルトで HTTPS 限定を推奨)。