Azure Key Vault から Azure Container Apps に証明書をインポートする (プレビュー)
コンテナー アプリの証明書を管理して更新、書き換え、監視を行うように、Azure Key Vault を設定することができます。 Key Vault を使用しない場合、証明書を手動で管理する必要があります。つまり、一元的な場所で証明書を管理できず、ライフサイクルの自動化や通知を利用できません。
前提条件
Azure Key Vault: Key Vault リソースを作成します。
Azure CLI: Azure Container Apps 拡張機能バージョン
0.3.49
以上で更新された Azure CLI が必要です。az extension add
コマンドを使用して最新バージョンをインストールします。az extension add --name containerapp --upgrade --allow-preview`
マネージド ID: Container Apps 環境でマネージド ID を有効にします。
シークレットの構成
証明書を格納するには Azure Key Vault インスタンスが必要です。 Key Vault インスタンスを次のように更新します。
Azure Portalを開きます。
Azure Container Apps 環境に移動します。
[設定] から [アクセス制御 (IAM)] を選択します。
[ロール] タブで、自分を "キー コンテナー管理者" として設定します。
証明書の詳細に移動し、[シークレット識別子] の値をコピーし、後の手順で使用するためにテキスト エディターに貼り付けます。
Note
証明書の特定のバージョンを取得するには、シークレット識別子にバージョン サフィックスを含めます。 最新バージョンを取得するには、識別子からバージョン サフィックスを削除します。
Key Vault 証明書を有効にして構成する
Azure portal を開いて、お使いのキー コンテナーに移動します。
[オブジェクト] セクションで、[証明書] を選択します。
使用する証明書を選択します。
[アクセス制御 (IAM)] セクションで、[ロールの割り当ての追加] を選択します。
次のロールを追加します: "キー コンテナー証明書責任者" と "キー コンテナー シークレット責任者"。
証明書の詳細に移動し、[シークレット識別子] の値をコピーします。
後の手順で使用するために、識別子をテキスト エディターに貼り付けます。
環境レベルのマネージド ID にロールを割り当てる
Azure portal を開き、証明書をインポートする Azure Container Apps 環境のインスタンスを見つけます。
[設定] から [ID] を選択します。
[システム割り当て済み] タブで、[状態] スイッチを見つけ、[オン] を選択します。
[保存] を選択し、[システム割り当てマネージド ID の有効化] ウィンドウが表示されたら、[はい] を選択します。
[アクセス許可] ラベルの下で [Azure ロールの割り当て] を選択して、ロールの割り当てウィンドウを開きます。
[ロールの割り当ての追加] を選択し、次の値を入力します。
プロパティ 値 Scope "Key Vault" を選択します。 サブスクリプション Azure サブスクリプションを選択します。 リソース コンテナーを選択します。 ロール "キー コンテナー シークレット ユーザー"* を選択します。 [保存] を選択します。
RBAC とレガシ アクセス ポリシーの比較に関する詳細については、「Azure ロールベースのアクセス制御 (Azure RBAC) とアクセス ポリシーの比較」を参照してください。
証明書のインポート
コンテナー アプリによるコンテナーの読み取りを認可したら、az containerapp env certificate upload
コマンドを使用してコンテナーを Container Apps 環境にインポートすることができます。
次のコマンドを実行する前に、<>
かっこで囲まれたプレースホルダー トークンを独自の値に置き換えてください。
az containerapp env certificate upload \
--resource-group <RESOURCE_GROUP> \
--name <CONTAINER_APP_NAME> \
--akv-url <KEY_VAULT_URL> \
--certificate-identity <CERTIFICATE_IDENTITY>
コマンド パラメーターの詳細については、次の表を参照してください。
パラメーター | 説明 |
---|---|
--resource-group |
リソース グループ名。 |
--name |
コンテナー アプリ名。 |
--akv-url |
シークレット識別子の URL。 この URL は、前の手順で控えておいた値です。 |
--certificate-identity |
マネージド ID の ID。 この値は、system か、ユーザー割り当てマネージド ID の ID にすることができます。 |
トラブルシューティング
証明書をインポートするときにエラー メッセージが表示された場合は、次の手順に従って、行った操作を確認してください。
証明書と環境レベルのマネージド ID の両方について、アクセス許可が正しく構成されていることを確認します。
- "キー コンテナー シークレット責任者" と "キー コンテナー証明書責任者" の両方のロールを割り当てる必要があります。
証明書にアクセスするための正しい URL を使用していることを確認します。 "シークレット識別子" の URL を使用する必要があります。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示