2.8K Views
October 14, 22
スライド概要
Azure Container AppsとDapr - Secrets API対応とManaged IDサポートについて 2022/10/14 GEEKERS NITE #1 SHUNSUKE YOSHIKAWA
自己紹介 Shunsuke Yoshikawa Twitter: https://twitter.com/ussvgr Qiita: https://qiita.com/ussvgr ⚫ 所属: 株式会社エーピーコミュニケーションズ ⚫ 普段の仕事: Azure×コンテナ中心のインフラ構築(AKSとかContainer Appsとか) ⚫ 愛知県在住(Microsoft Ignite 2022とコレのために出張してきました) ⚫ 会社のブログにAzureネタを書いてます APC技術ブログ(https://techblog.ap-com.co.jp/)
Ignite 2022、ご覧になられましたか?
いろいろなアップデートが発表されました https://news.microsoft.com/ignite-2022-book-of-news/ja/
Book of Newsには載ってなかったけど… https://azure.microsoft.com/en-us/updates/generally-available-dapr-secrets-api-support/ https://azure.microsoft.com/en-us/updates/generally-available-dapr-support-for-managedidentity-in-azure-container-apps/
Dapr secrets API Support Azure Container AppsのDaprでsecrets APIが使えるようになった。 保管された秘匿情報に対しDaprからアクセスできるようになる。 主な対応サービスは以下のとおり。 ⚫ GCP Secret Manager ⚫ AWS Secret Manager ⚫ HashiCorp Vault ⚫ Azure Key Vault
Dapr support for Managed Identity Azure Container AppsのDaprからAzureリソースにアクセスする際に マネージドIDを使って認証できるようになった。 Daprの定義として個々のリソースに対する認証情報を設定しなくても、 対象のリソースに接続できるようになる。
こんなことができるな…? Azure Key Vaultにお手軽にアクセスできる平和な世界 Azure Container Apps アプリケーション コンテナ シークレットを要求 マネージドIDで認証し シークレットを取得
試してみよう まずは環境づくり # リソース名とリージョンの定義 rgName=rg-sample location=japaneast caeName=cae-sample kvName=kvdaprmanagedidtest # リソースグループ作成 az group create --location $location --name $rgName # Container Apps環境作成 az containerapp env create -n $caeName -g $rgName -l $location # Key Vault作成 az keyvault create -n $kvName -g $rgName -l $location
試してみよう Container Apps用のDapr定義ファイルは以下のとおり。 Key Vaultの情報は名前のみで、 認証に関する情報が含まれていないことに注目! componentType: secretstores.azure.keyvault version: v1 metadata: - name: vaultName value: kvdaprmanagedidtest az containerapp env dapr-component set -n $caeName -g $rgName ¥ --dapr-component-name azurekeyvault --yaml azurekeyvault.yaml
試してみよう DaprとマネージドIDを有効化したContainer Appsを作成する acaName=aca-sample az containerapp create -n $acaName -g $rgName ¥ --environment $caeName --system-assigned ¥ --enable-dapr ¥ --dapr-app-id sampleapp ¥ --image nginx:latest
試してみよう Key Vaultにシークレットを作成する az keyvault secret set --vault-name $kvName ¥ --name testSecret --value 'This is Test Value!'
試してみよう Key VaultのアクセスポリシーでContainer AppsのマネージドIDに シークレットの取得 権限を付与する
試してみた アプリケーションコンテナから以下のエンドポイントにアクセスすることで Key Vault内のシークレットの値を読み出すことができた! curl http://localhost:${DAPR_HTTP_PORT}/v1.0/secrets/azurekeyvault/testSecret {"testSecret":"This is Test Value!"}
まとめ ⚫ 認証情報を持たせることなく、 安全に秘匿情報を扱える素敵な世界が実現できた。 ⚫ Azure Container Apps+Daprで 扱えるリソースが増えたのがうれしい。 ⚫ Igniteでは他にもたくさんアップデートがあったので、 「あなたの一推し」を教えてください!
Thank You!