Azure Container AppsでAzure Functionsのシークレットを管理する

Azure Container AppsでAzure Functionsを実行すると、次の 2 つのカテゴリのシークレットを操作できます。

カテゴリ 説明 消費者によって
アプリ レベルのシークレット データベース接続文字列、API キー、トリガー/バインド資格情報など、関数コードが実行時に読み取る構成値。 コードと Functions ランタイム バインディング。
関数のアクセスキー マスター、ホスト、関数、システム キーなど、HTTP によってトリガーされる関数エンドポイントをセキュリティで保護する認証トークン (アクセス キー)。 HTTP 関数の外部呼び出し元 (サービス、Webhook、開発者)。

次の 2 つのカテゴリの 方向が異なります。

アプリレベルのシークレット アクセス キーの機能
方向 送信 - 関数が他のサービスに対して認証を行う Inbound - 呼び出し元が関数に対して認証を行う
シークレットを保持するユーザー 関数アプリケーション 呼び出し元 (webhook プロバイダー、サービス、開発者)
保護対象 関数が接続するもの HTTP エンドポイントを呼び出すことができるのは誰か
による検証済み ターゲット サービス 関数のランタイム

アプリケーションレベルのシークレット

アプリ レベルのシークレットは、関数コードとバインドが外部サービスに接続するために必要な資格情報です。 次の 2 つの方法で格納できます。

オプション 最適な用途 回転 監査 ガイド
Container Apps のシークレット 開発/テスト、単純なシングルアプリ ワークロード マニュアル アクティビティ ログのみ アプリ レベルのシークレットを格納する
Key Vault の参照 運用、マルチアプリ、コンプライアンス 自動 (バージョンレス URI) Key Vaultの完全診断 アプリ レベルのシークレットを格納する

ヒント

わかりやすくするために、Container Apps のシークレットから始めます。 一元管理、自動ローテーション、またはコンプライアンス グレードの監査が必要な場合は、Key Vault参照に移動します。

関数アクセスキー

アクセス キーは、HTTP エンドポイントに軽量の共有シークレット認証を提供します。 アクセス キーは、呼び出し元がサード パーティの Webhook、サービス間呼び出し、開発中などのMicrosoft Entra IDトークンを提示できない場合に使用します。

AzureWebJobsSecretStorageType環境変数を設定して、ストレージ バックエンドを選択します。

バックエンド 値を設定する 最適な用途 ガイド
Container Apps シークレット ストア containerapp ほとんどのワークロード - 外部依存関係なし (推奨) ホスト キーの構成
Azure Key Vault keyvault 一元化されたガバナンス、コンプライアンス監査 ホスト キーの構成
Azure Blob Storage blob レガシーアプリまたは既存のAzureWebJobsStorage依存関係 ホスト キーの構成
ローカル ファイル システム files コンテナー アプリではお勧めしません - 警告を参照してください N/A

Warnung

Azure Functions ホストは、files が設定されていない場合、既定で AzureWebJobsSecretStorageType (ローカル ファイル システム) になります。 Azure Container Appsでは、ファイル システムは ephemeral です。 filesと共に格納されたホスト キーは、再起動、ゼロへのスケール、またはリビジョンのデプロイのたびに失われます。 ここに記載されている 3 つの運用バックエンドのいずれかを常に構成します。

次のステップ

管理する必要があるシークレットの種類に一致するガイドを選択します。