お客様のDXの推進やクラウド活用をサポートする
NRIグループのプロフェッショナルによるブログ記事を掲載

Azure初学者の躓きポイント、認証・認可を正しく理解する

伊藤 豪太 - Nomura Research Institute, Ltd.

はじめに

こんにちは、NRI新卒1年目の伊藤です。2023年の夏に新人研修を終えて、部署に配属されてから約半年が経ちました。

私が配属された部署では主要パブリッククラウドの導入支援を行っており、中でも私はMicrosoft Azure(Azure)を担当することになりました。パブリッククラウドの経験は、学生時代にAmazon Web Services (AWS)のEC2を立てて遊んだことがあるぐらいであり、Azureについては名前を知っているというレベルでした。

本記事では、Azureに触れたことのない新人がAzureを利用するにあたり、躓いたポイントを紹介します。特に、学生時代にあまり意識できていなかったセキュリティ対策において、認証・認可という概念で大きく躓いたので取り上げます。

 

認証・認可とは?

まず、「認証」と「認可」について皆さんは違いをすぐに説明できますか?「認証」と「認可」は似たような言葉ですが、意味は全く異なります。

【認証(Authentication & Certification)】

ユーザーIDとパスワードの組み合わせや第三者が発行する証明書の保有をもとに、利用者の正当性を確認すること。

【認可(Authorization)】

認証された利用者が必要な機能を実行するための権限を与えること。

「認証」によって不正な利用者のアクセスを防ぎ、「認可」によって利用者の操作を必要最低限な範囲に限定することができます。この2段階のセキュリティ対策を敷くことで、アカウントを安全に運用することができます。

Azureでももちろん認証・認可の仕組みが存在し、セキュリティ対策の要であるため、様々な実現方法が存在します。そこで、私がAzureの認証・認可についてそれぞれ躓いた具体的な事例を紹介します。

 

躓きポイント①:認証の対象は人だけではない

まずは認証について。私はAzureの導入支援の案件で、「サービスプリンシパルとマネージドIDのどちらでサインインできるようにする?」と質問を受けました。私はサインインすると聞いて、「ユーザー以外に誰がサインインするんだろう・・・」と思考が止まってしまいました。

ここでの躓きポイントは、「Azureでの認証の対象は人だけではない」ということです。アプリケーションやAzureリソースも認証の対象となります。Azureでは大きく以下2種類の認証情報を用いて対象の認証を行います。

【ユーザープリンシパル】
ユーザーがAzureリソースにアクセスするために必要な認証情報。いわゆるユーザーアカウント情報。

【サービスプリンシパル】
ユーザーではなく、アプリケーションやサービスがAzureリソースにアクセスするために必要な認証情報。特に認証の対象がAzureリソースである場合、マネージドIDを用いることで利用者による認証情報の管理が不要になる。


Microsoft Entra ID でのサービス プリンシパルを使用した認証 - Training | Microsoft Learn

マネージド ID を使用した認証 - Training | Microsoft Learn

2種類の認証情報を使い分けることで、より細かなアクセス制御を実現し、セキュリティの強化に繋がります。さらにアクセス元がAzureリソースの場合は、マネージドIDを利用することで簡易的に認証を実現することができます。

ここで、この認証を行う認証基盤はAzureではなく、Microsoft Entra ID(旧Azure Acitive Directory)であることに注意しましょう。「Azureが全てを管理している」と考えていると、次に紹介する認可で私と同じ躓きをするかもしれません・・・

 

躓きポイント②:ロールによる認可を行う対象は2種類ある

次に認可について。私に与えられたタスクの1つに、Azureの検証環境用のユーザープリンシパルをプロジェクトの新規参画者に払い出す作業がありました。ある日先輩から「この人にはグローバル閲覧者のロールを付与して」と指示を受け、私はユーザーのロールを確認し、「所有者から変更すればいいですか?」と確認を取りました・・・

すでにお気づきの人もいると思いますが、この会話は嚙み合っていません。Azureで認可を制御するのはロールになります。しかし、ロールには「Microsoft Entraロール」と「Azureロール」の2種類が登場します。

【Microsoft Entraロール】
ユーザー、グループ、アプリケーションなどのMicrosoft Entra リソースへのアクセスを制御する。
主なロール:グローバル管理者、グローバル閲覧者、セキュリティ管理者など

【Azureロール】
仮想マシンやストレージなどのAzureリソースへのアクセスを制御する。
主なロール:所有者、共同作成者、閲覧者など


Microsoft Entra ロール ベースのアクセス制御 (RBAC) の概要 - Microsoft Entra ID | Microsoft Learn

従って、先ほどの先輩とのやり取りでは、先輩が指示をしたのは「Microsoft Entraロール」、私が確認を取ったのは「Azureロール」となります。

「○○のロールを付与して」とロール名を指定されれば、ロール名を検索することで誰でも意図した制御を設定できると思います。しかし、「□□ができるようにして」と実現したい操作で依頼されることが多いので、2種類のロールが制御する範囲を正しく理解しておくことが大事になります。

 

おわりに

Azure初学者の躓きポイントとして認証・認可に注目して紹介しました。共通して私が重要だと感じたことは「Microsoft Entra IDとAzureは別サービス」ということです。Azure Portalから操作できるからといって、Microsoft Entra IDをAzureの1つのサービスとして捉えていると落とし穴にハマります。

本記事が少しでもAzureをこれから勉強しようという人たちの助けになれば幸いです。

 

お問い合わせ

atlax では、ソリューション・サービス全般に関するご相談やお問い合わせを承っております。

 

関連リンク・トピックス

・atlax / クラウドの取り組み / Microsoft Azure 

・2024/01/25 Azureでセキュリティ対策って何をすればいいの?ガードレールを敷いて安全にAzureを使おう!

・2023/05/18 Azure初心者はどんなことから勉強すればいい? NRIの社内勉強会で若手社員が発表した内容をちらっと紹介!

※ 記載された会社名 および ロゴ、製品名などは、該当する各社の登録商標または商標です。
※ アマゾン ウェブ サービス、Amazon Web Services、AWS および ロゴは、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
※ Microsoft、Azure は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。
※ Google Cloud、Looker、BigQuery および Chromebook は、Google LLC の商標です。
※ Oracle、Java、MySQL および NetSuite は、Oracle Corporation、その子会社および関連会社の米国およびその他の国における登録商標です。NetSuite は、クラウド・コンピューティングの新時代を切り開いたクラウド・カンパニーです。