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 つの運用バックエンドのいずれかを常に構成します。
次のステップ
管理する必要があるシークレットの種類に一致するガイドを選択します。