Azure Stack の認証認可
azurestack
Lastmod: 2019-03-10

はじめに

本エントリーはMicrosoft Azure Stack Advent Calendar 2018の12日目です。

先日までのエントリでは、Dploymemt Worksheet をもとにして、Azure Stack を設置するために必要な準備をまとめました。本日以降のエントリでは、OEM ベンダが導入した Azure Stack を運用していくために必要なことをまとめていきます。

運用するためには Azure Stack にログインしなければなりません。というわけで、本日エントリでは、Azure Stack における認証認可をまとめます。なお、私は、ADFS で認証する Azure Stack を触ったことがありません。そのため、本エントリでは、AAD を利用した Azure Stack のみを対象とします。

3つの接続先

Azure Stack には次の通り大きく3つの接続先があり、接続先に応じて認証認可の仕組みが異なります。

  1. 管理者向け Azure Resource Manager(ARM)
  2. 利用者向け Azure Resource Manager(ARM)
  3. Emergency Recovery Console 上の Privileged Endpoint(PEP)

1. 管理者向けARMの認証認可

認証

管理者向けARMの認証基盤は、Deployment Worksheet で指定した Azure Active Directory のテナントです。したがって、管理者向けポータルや管理者向け PowerShell などの管理者向け ARM を利用する機能にアクセスする際は、Deployment worksheetに指定したテナントに存在するユーザーでログインします。

なお、具体的なログイン方法については、明日のエントリーでフォローします。

認可

認証を通過して Azure Stack の管理側にログインできたとしても、リソースにはアクセスできません。リソースにアクセスするためには、認可の設定が必要です。認可のないユーザでログインしても、次の画像のとおりリソースが全く表示されません。

認可の設定は、Azure の RBAC と 同じです。Azure Stack の管理者用リソースに対して権限を有するユーザだけが、Azure Stack 上の管理者用リソースにアクセスできます。デプロイ時に指定したユーザがサブスクリプションの Owner の権限を持っているので、そのユーザでログインした上で、次のように RBAC の設定画面からテナント上のユーザに対して権限を付与しましょう。

2. 利用者向けARMの認証認可

認証

利用者向け ARM の認証基盤は、利用者のサブスクリプションに紐付いているAADテナントです。サブスクリプションと Azure Active Directory の紐づけは、管理者が利用者向けのサブスクリプションを作成する際に行われます。

利用者向けポータルや利用者向け Powershell などの利用者向け ARM を利用する機能にアクセスする際は、サブスクリプションに紐付いているテナントに存在するユーザを利用します。

なお、具体的なログイン方法については、明日のエントリーでフォローします。

認可

管理者と同様、利用者についてもリソースに対する認可の設定が必要です。管理者が利用者向けサブスクリプションを作成するときに指定したメールアドレスが、利用者向けサブスクリプションのオーナーになります。このユーザでログインした上で、次のようにテナント上のユーザに対して権限を付与しましょう。リソースに対して権限を有するユーザーだけが Azure Stack 上のリソースにアクセスできます。Azure と同じです。

ただし、現在の Azure Stack は組み込みのロールが少ないです。次の画像のように、組み込みのロールはOwner と Reader 、 Contributer の3つのみです。

3. PEP の認証認可

認証

PEP の認証基盤は Azure Stack 内部の Active Directory です。この Active Directory が Deployment Worksheet で指定した内部ドメイン名を管理しています。

デプロイ直後には「内部ドメイン名¥CloudAdmin」という初期ユーザーだけが存在します。共有アカウントは好ましくないので、このユーザを利用して PEP に接続できる個人アカウントを増やしましょう。具体的な手順についてはAzure StackのPrivileged Endpointにユーザを追加するを確認ください。

認可

Azure Stack のセキュリティで説明したとおり、PEP 上のユーザは、JEA によって実行できるコマンドが制限されています。Microsoft が定めた認可を管理者が変更することはできません。

ただし、一部の障害対応においては、コマンドが制限されている PEP の権限だけでは復旧作業ができません。その場合、Microsoft のサポート担当の許可によって、PEP 上の権限を一時的に特権に切り替えることかできます。

具体的な流れを説明します。次の画像のとおり、Get-SupportSessionToken でトークンを生成してサポート担当に送付すると、サポート担当が制限を解除するためのトークンをくれます。そのトークンを Unlock-SupportSession に引数として渡すと、PEP が一時的に特権に切り替わります。特権への切り替えには、Microsoft のサポート担当が発行したトークンが必要不可欠です。利用者だけで自由に特権を行使することは不可能です。

まとめ

本日のエントリーでは Azure Stack の接続先ごとに認証と認可をまとめました。Azure Stack の管理者向け ARM と利用者向け ARM の認証と認可は、Azure と同じ Azure Active Directory + RBAC の仕組みです。Azure の仕組みに慣れている人であればすぐに理解できると思います。