ストレージ アカウント アクセス キーを管理する

ストレージ アカウントを作成すると、Azure により、そのアカウントに 512 ビットのストレージ アカウント アクセス キーが 2 つ生成されます。 これらのキーは、共有キー認証を使用してストレージ アカウント内のデータへのアクセスする際、認証に使用されます。

アクセスキーの管理には Azure Key Vault を使用し、キーのローテーションと再生成は定期的に行うことをお勧めします。 Azure Key Vault を使用すると、アプリケーションを中断することなく簡単にキーをローテーションできます。 また、キーを手動でローテーションすることもできます。

アクセス キーの保護

ストレージ アカウントのアクセス キーは、ストレージ アカウントの root パスワードに似ています。 アクセス キーは常に慎重に保護してください。 キーを安全に管理およびローテーションするには、Azure Key Vault を使用します。 アクセス キーを他のユーザーに配布したり、ハードコーディングしたり、他のユーザーがアクセスできるプレーンテキストで保存したりしないでください。 キーが侵害された可能性があると思われる場合は、キーをローテーションしてください。

Note

BLOB およびキューのデータに対する要求を認可するには、アカウント キー (共有キーによる認可) を使用するのではなく、可能であれば Azure Active Directory (Azure AD) を使用することをお勧めします。 Azure AD を使用して認可すると、共有キーによる認可よりも優れたセキュリティと使いやすさが実現されます。

Azure AD の条件付きアクセスポリシーを使用して Azure Storage アカウントを保護するには、ストレージ アカウントに対する共有キーの認可を禁止する必要があります。 共有キーによる認可を禁止する方法の詳細については、「Azure Storage アカウントの共有キーによる承認を禁止する」を参照してください。

アカウントのアクセス キーを表示する

アカウント アクセス キーは、Azure portal、PowerShell、または Azure CLI を使用して表示したり、コピーしたりできます。 Azure portal にはストレージ アカウントの接続文字列も用意されているのでコピーできます。

Azure portal からストレージ アカウントのアクセス キーまたは接続文字列を表示およびコピーするには:

  1. Azure portal で、ストレージ アカウントに移動します。

  2. [セキュリティとネットワーク] で、 [アクセス キー] を選択します。 アカウント アクセス キーと、各キーの完全な接続文字列が表示されます。

  3. [キーの表示] を選択して、アクセス キーと接続文字列を表示し、値をコピーするボタンを有効にします。

  4. [key1] の下で [キー] 値を見つけます。 [コピー] ボタンを選択してアカウント キーをコピーします。

  5. あるいは、接続文字列全体をコピーできます。 [key1] の下で [接続文字列] の値を見つけます。 [コピー] ボタンを選択して接続文字列をコピーします。

    Screenshot showing how to view access keys in the Azure portal

2 つのキーのいずれかを使用して Azure Storage にアクセスすることもできますが、一般的には、最初のキーを使用し、キーのローテーション時に 2 番目のキーの使用を予約することをお勧めします。

アカウントのアクセス キーを表示または読み込むには、ユーザーがサービス管理者であるか、Microsoft.Storage/storageAccounts/listkeys/action を含む Azure ロールが割り当てられている必要があります。 このアクションが含まれる Azure 組み込みロールには、所有者共同作成者、およびストレージ アカウント キー オペレーターのサービス ロールがあります。 サービス管理者ロールの詳細については、従来のサブスクリプション管理者ロール、Azure ロール、および Azure AD ロールに関する記事を参照してください。 Azure Storage 用の組み込み RBAC ロールの詳細については、「Azure RBAC の Azure 組み込みロール」の「ストレージ」セクションを参照してください。

Azure Key Vault を使用してアクセスキーを管理する

Microsoft では、Azure Key Vault を使用して、アクセスキーの管理とローテーションをするようお勧めします。 アプリケーションは、Key Vault 内のキーに安全にアクセスできるので、アプリケーションコードと一緒に格納することは避けてください。 キー管理に Key Vault を使用する方法の詳細については、次の記事を参照してください:

アクセス キーを手動でローテーションする

Microsoft では、ストレージアカウントのセキュリティを確保するために、アクセスキーを定期的にローテーションすることをお勧めします。 可能であれば、Azure Key Vault を使用してアクセスキーを管理してください。 Key Vault を使用していない場合は、キーを手動でローテーションする必要があります。

キーをローテーションさせることができるように、2 つのアクセス キーが割り当てられます。 2 つのキーで、アプリケーションはプロセス全体を通じて Azure Storage へのアクセスを維持します。

警告

アクセス キーの再生成は、ストレージ アカウント キーに依存するあらゆるアプリケーションまたは Azure サービスに影響を与える可能性があります。 メディア サービス、クラウド、モバイル アプリケーション、Azure Storage 向けのグラフィカル ユーザー インターフェイス アプリケーション (Azure Storage Explorer など) を含む、アクセス キーを使用してストレージ アカウントにアクセスするクライアントは新しいキーを使用するように更新する必要があります。

アクセス キーを手動でローテーションする場合は、キーの有効期限ポリシーを設定してください。 詳細については、「キーの有効期限ポリシーを作成する」を参照してください。

キーの有効期限ポリシーを作成した後、Azure Policy を使用して、ストレージ アカウントのキーが推奨間隔内にローテーションされているかどうかを監視できます。 詳細については、「キーの有効期限ポリシー違反を確認する」を参照してください。

Azure portal でストレージ アカウントのアクセス キーをローテーションさせるには:

  1. ストレージ アカウントのセカンダリ アクセス キーを参照するようにアプリケーション コードの接続文字列を更新します。
  2. Azure Portal のストレージ アカウントに移動します。
  3. [セキュリティとネットワーク] で、 [アクセス キー] を選択します。
  4. ストレージ アカウントのプライマリ アクセス キーを再生成するには、プライマリ アクセス キーの隣にある [再生成] ボタンを選択します。
  5. 新しいプライマリ アクセス キーを参照するようにアプリケーション コードの接続文字列を更新します。
  6. 同様に、セカンダリ アクセス キーを再生成します。

注意

Microsoft では、すべてのアプリケーションで、同時にいずれかのキーのみを使用することをお勧めします。 キー 1 を使用する場所とキー 2 を使用する場所がある場合、キーを循環させるときに、一部のアプリケーションがアクセス権を失います。

アカウントのアクセス キーをローテーションさせるには、ユーザーがサービス管理者であるか、Microsoft.Storage/storageAccounts/regeneratekey/action を含む Azure ロールが割り当てられている必要があります。 このアクションが含まれる Azure 組み込みロールには、所有者共同作成者、およびストレージ アカウント キー オペレーターのサービス ロールがあります。 サービス管理者ロールの詳細については、従来のサブスクリプション管理者ロール、Azure ロール、および Azure AD ロールに関する記事を参照してください。 Azure Storage 用の Azure 組み込みロールの詳細については、Azure RBAC の Azure 組み込みロールに関するページの「ストレージ」セクションを参照してください。

キーの有効期限ポリシーを作成する

キーの有効期限ポリシーを使用すると、アカウント アクセス キーのローテーションのアラームを設定できます。 アラームは、指定された間隔が経過し、キーがまだローテーションされていない場合に表示されます。 キーの有効期限ポリシーを作成した後、ストレージ アカウントのコンプライアンスを監視して、アカウント アクセス キーが定期的にローテーションされるのを確認できます。

Note

キーの有効期限ポリシーを作成する前に、アカウント アクセス キーを少なくとも 1 回ローテーションする必要がある場合があります。

Azure portal で、キーの有効期限ポリシーを作成するには:

  1. Azure portal で、ストレージ アカウントに移動します。
  2. [セキュリティとネットワーク] で、 [アクセス キー] を選択します。 アカウント アクセス キーと、各キーの完全な接続文字列が表示されます。
  3. [交換リマインダーの設定] ボタンを選択します。 [交換リマインダーの設定] ボタンが灰色表示されている場合は、各キーを回転する必要があります。 「アクセス キーを手動で交換する」で説明されている手順に従って、キーを交換します。
  4. [アクセス キーを交換するためのリマインダーを設定する][キー交換リマインダーを有効にする] チェックボックスをオンにして、アラームの頻度を設定します。
  5. [保存] を選択します。

Screenshot showing how to create a key expiration policy in the Azure portal

キーの有効期限ポリシー違反を確認する

Azure Policy を使用してストレージ アカウントを監視し、推奨される期間中にアカウント アクセス キーがローテーションされた状態を確認できます。 Azure Storage、ストレージ アカウントのアクセス キーの有効期限が切れていないか確認するための組み込みポリシーが提供されます。 組み込みポリシーの詳細については、「ストレージ アカウント キーが期限切れにならないようにする必要がある」を「組み込みのポリシー定義の一覧」で参照してください。

リソース スコープの組み込みポリシーを割り当てる

Azure portal で組み込みポリシーを適切なスコープに割り当てるには、次の手順に従います。

  1. Azure portal で [ポリシー] を検索し、Azure Policy ダッシュボードを表示します。

  2. [作成] セクションで [割り当て] を選択します。

  3. [ポリシーの割り当て] を選択します。

  4. [ポリシーの割り当て] ページの [基本] タブの [スコープ] セクションで、ポリシー割り当てのスコープを指定します。 [その他] ボタンを選択して、サブスクリプションとオプションのリソース グループを選択します。

  5. [ポリシー定義] フィールドで、[その他] ボタンを選択し、[検索] フィールドにストレージ アカウント キーを入力します。 [ストレージ アカウント キーが期限切れにならないようにする必要がある] という名前のポリシー定義を選択します。

    Screenshot showing how to select the built-in policy to monitor key rotation intervals for your storage accounts

  6. [確認と作成] を選択して、ポリシー定義を指定したスコープに割り当てます。

    Screenshot showing how to create the policy assignment

キーの有効期限ポリシーに対するコンプライアンスを監視する

キーの有効期限ポリシーに準拠するためにストレージ アカウントを監視するには、次の手順に従います。

  1. Azure Policy ダッシュボードで、ポリシーの割り当てで指定したスコープの組み込みポリシー定義を見つける。 [検索] ボックスで [ストレージ アカウント キーが期限切れにならないようにする必要がある] を検索し、組み込みのポリシーをフィルター処理できます。

  2. 目的のスコープを持つポリシー名を選択します。

  3. 組み込みポリシーの [ポリシーの割り当て] ページで、[コンプライアンスの表示] を選択します。 ポリシー要件を満たしていない、指定されたサブスクリプションとリソース グループ内のすべてのストレージ アカウントが、コンプライアンス レポートに表示されます。

    Screenshot showing how to view the compliance report for the key expiration built-in policy

ストレージ アカウントをコンプライアンスに取り込むには、アカウント アクセス キーをローテーションします。

次のステップ