Azure リソースのマネージド ID を使用したコンテナーの認証

完了

Azure Key Vault では、Microsoft Entra ID を使用して、コンテナーへのアクセスを試みるユーザーとアプリを認証します。 コンテナーへのアクセスを Web アプリに付与するには、まず Microsoft Entra ID にアプリを登録する必要があります。 登録すると、アプリに対して ID が作成されます。 アプリに ID が作成されると、それにコンテナーのアクセス許可を割り当てることができるようになります。

アプリとユーザーは、Microsoft Entra の認証トークンを使用して、Key Vault に対して認証を行います。 Microsoft Entra ID からトークンを取得するには、シークレットまたは証明書が必要です。 トークンを持つすべてのユーザーは、アプリ ID を使用して、コンテナー内のすべてのシークレットにアクセスできます。

アプリのシークレットは、コンテナーでセキュリティにより保護されていますが、それにアクセスするために、コンテナー外でもシークレットまたは証明書を保持する必要があります。 この問題は、"ブートストラップの問題" と呼ばれており、Azure にはそのソリューションがあります。

Azure リソースのマネージド ID

Azure リソースのマネージド ID とは、1 つのシークレットもコンテナー外で管理する必要なく Key Vault や他の Azure サービスにアクセスするために、ご利用のアプリで使用できる Azure の機能です。 マネージド ID の使用は、Web アプリから Key Vault を活用するための単純かつ安全な方法です。

Web アプリでマネージド ID を有効にすると、Azure ではご利用のアプリが専用に使用されるよう、個別のトークンが付与される REST サービスがアクティブ化されます。 アプリからのトークンの要求は、直接 Microsoft Entra ID からではなく、このサービスから行われます。 アプリはシークレットを使ってこのサービスにアクセスする必要がありますが、そのシークレットは、アプリの起動時に App Service によってご利用のアプリの環境変数に挿入されます。 このシークレット値をどこかで管理したり格納する必要はありません。また、アプリ外部からこのシークレットまたはマネージド ID トークン サービスのエンドポイントにアクセスすることはできません。

また、アプリは Azure リソース用マネージド ID によって、自動的に Microsoft Entra ID に登録されます。 Web アプリを削除するか、そのマネージド ID を無効にすると、Microsoft Entra ID によって登録が削除されます。

マネージド ID は、Azure サブスクリプションに付属している Free エディションを含む、Microsoft Entra ID のすべてのエディションで利用できます。 これを App Service で使用する場合、追加コストや構成が不要です。またアプリでいつでも有効または無効にできます。

Web アプリのマネージド ID を有効にするには、構成は不要で、1 つの Azure CLI コマンドのみで実行できます。 これは、後ほど App Service アプリを設定し、Azure にデプロイするときに行います。 ただし、その前に、マネージド ID に関する知識を使って、アプリ用のコードを記述します。

自分の知識をチェックする

1.

Azure リソースのマネージド ID を使用した場合、Azure Key Vault でのアプリの認証方法はどのように変わりますか?

2.

次のうち、Azure リソースのマネージド ID を使用してアプリが Key Vault の認証を受ける場合の主な利点を説明している文はどれですか?