マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

詳細

  • Azureのリソース操作用のID
  • このID(appId)は、Azure ADによって管理される。
  • 基本は、アプリケーション用として利用する。

認証の種類

サービス・プリンシパルでは 2 種類の認証を使用可能。

パスワード・ベースの認証

証明書ベースの認証

Azure Managed ID

ラッパとして機能し、パスワードを使用しないで利用できる。

パスワードの失効とリフレッシュ

失効

  • 既定では一年でパスワード(シークレット)が失効する。
  • 無期限に設定することも出来る模様。

リフレッシュ

  • 必要に応じリフレッシュが必要になる。
  • リフレッシュはパスワード(シークレット)再作成し、
  • アプリケーションにパスワード(シークレット)を再設定する。

用例

オートメーション・アカウント

  • Azure オートメーションを利用すると、Azure リソースへの操作を自動化できる
    • 主にインフラ系操作の自動化に利用する仕組み
    • オートメーション・アカウントを作成し、複数のアカウントを束ねて管理
    • Runbook と呼ばれる仕組みで、実際に行う自動化の作業を記述・管理
  • Azure インフラ操作だけでなく、オンプレミス側へのリソース操作指示なども可能
    • RBACには、サービス・プリンシパルが利用される。
    • これにより、Runbook が実際に実行できるインフラ操作内容を制限できる。

Azure CLI

Azure CLI用とすれば、操作者のSubscriptionが変更されても権限を維持可能。

>az ad sp create-for-rbac --skip-assignment
{
  "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "displayName": "azure-cli-2019-12-12-08-08-32",
  "name": "http://azure-cli-2019-12-12-08-08-32",
  "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
>az role assignment create --assignee "<appId>" --role Reader
>az login --service-principal --username "<appId>" --password "<password>" --tenant TENANT_ID

ストレージ系

Key Vault

Managed ID方式で、Key Vault経由で、
クレデンシャルを取り出し、任意のサービスを認証する。

Azureのストレージ

AKS

AKS制御プレーン用

  • SPN方式
    前述のAzure CLI用のSPNを使用する。
    az aks create -n myAKSCluster -g myResourceGroup --node-count 2 --service-principal "<appId>" --client-secret "<password>" --generate-ssh-keys
  • Managed ID方式
    az aks create -n myAKSCluster -g myResourceGroup --enable-managed-identity

AKS制御プレーンのAKS ARC Pull用

  • SPN方式
    前述のAzure CLI用のSPNを使用する。
    az role assignment create --assignee "<appId>" --scope "<acrId>" --role acrpull
  • Managed ID方式
    既存の AKS クラスターに対する ACR 統合
    az aks update -n myAKSCluster -g myResourceGroup --attach-acr <acrName>
  • 参考

AKS制御プレーンの既存のVNET操作用

  • SPN方式
    AKS_VNET_ID=$(az network vnet show --name $AKS_VNET_NAME --resource-group $RG_AKS --query id -o tsv)
    az role assignment create --assignee $AKS_SP_ID --role "Contributor" --scope $AKS_VNET_ID
  • Managed ID方式
    AKS_VNET_ID=$(az network vnet show --name $AKS_VNET_NAME --resource-group $RG_AKS --query id -o tsv)
    AKS_MANAGED_ID=$(az aks show --name $AKS_CLUSTER_NAME --resource-group $RG_AKS --query identity.principalId -o tsv)
    az role assignment create --assignee $AKS_MANAGED_ID --role "Contributor" --scope $AKS_VNET_ID
  • 参考

参考

Microsoft Docs


Tags: :セキュリティ, :アカウント, :クラウド, :認証基盤, :Azure, :Active Directory


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-09-30 (木) 18:46:58 (24d)