つまずいて覚える Azure インフラ #1 ネットワークと権限

245 Views

October 13, 26

スライド概要

Azure を初めて触る人から、業務で使いたい人向けのハンズオン資料です(全4回の第1回)。

伝えたいのは、ネットワークと権限の大事さです。Azure は、最初から全部が使えるわけではありません。最小の権限と構成から始めて、必要になったら機能を足していきます。この資料でも、わざと設定を足りない状態にして、エラーを見てから NSG やロールを足していきます。クォータやリソース プロバイダーのように、使う前に開けておく仕組みも紹介しています。

扱う内容:VNet、NSG、VM、Entra ID と Azure の権限(RBAC)、az ssh、クォータ、リソース プロバイダー、命名規則、片付け。2026年10月時点の情報です。

表紙のタイトル「つくって、壊して、直して学ぶ Azure入門」は、書籍『つくって、壊して、直して学ぶ Kubernetes入門』へのオマージュです。

profile-image

フリーランスのインフラエンジニア、しゃまです。2023年夏にインフラエンジニアになり、2025年1月に独立しました。いまは Azure を中心に、クラウド基盤の設計と構築を業務委託で担当しています。 学歴がないぶん資格で補ってきて、Microsoft と AWS を中心に29個の資格を取りました。 「AI に頼めばインフラが立つ時代だからこそ、土台を自分の手で理解しておきたい」と考えています。ここでは、Azure を初めて触る人向けに、実際に作って、わざとエラーを出して、直しながら学ぶ勉強会の資料を公開しています。 ほかにも、エンジニア向けの無料相談や、無料エンジニアコミュニティの運営をしています。技術記事は Zenn と note、日々の発信は X です。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

しゃま つくって、壊して、直して学ぶ Azure入門 第1回 土台をつくる:ネットワークとサーバー 2026.10.11 Azureインフラ勉強会 第1回

2.

自己紹介 しゃま(西山) 30歳、香川県出身 インフラエンジニア 4年目(2023年夏〜) フリーランス 2年目(2025年1月〜) 仕事 Azure を中心に、クラウド基盤の設計と構築(業務委託) アウトプットと発信 エンジニア向けの無料相談、無料エンジニアコミュニティの運営 技術記事(Zenn、note)と X で発信 資格は 29個(学歴がないぶん、資格で補ってきました) Microsoft(12):AZ-900、MS-900、AI-900、AZ-104、AZ-204、AZ-500、AZ-700、AZ-400、AZ-305、AI-102、AB-731、Applied Skills(APL-1003) AWS(11):CLF、SAA、SOA、DOP、SAP、ANS、SCS、DBS、DAS、MLS、PAS(2024 Japan AWS All Certifications Engineers。順次失効中) その他(6):JP1認定エンジニア(V12)、情報セキュリティマネジメント試験、CCNA、G検定、Python3エンジニア認定、LPIC-1 2

3.

自己紹介 植物と、ゆっくりする時間が好き 植物の育成 部屋とベランダで、たくさん育てています 自然の中のプライベートサウナ ゆっくりととのうのが好き その土地の酒、飯、コーヒー ゆっくりたしなむのが今年の楽しみ 最近は 結婚パーティーに向けて、妻とダイエット奮闘中 3

4.

今日かかるお金 1人あたり、3時間でおよそ11円。今日のうちに全部消します 仮想マシン(B2ts_v2) 約2.1円/時 パブリック IP(Standard) 約0.8円/時 OS ディスク(Standard SSD) 約0.5円/時 VNet、NSG 合計 この勉強会のルール 1回100円以内 作ったら3時間以内に消す RG ごと消す 無料 約3.5円/時 東日本の定価(2026年10月、Azure の料金 API)。無料アカウントのクレジットがあれば、そこから引かれます ・消し忘れると、ずっとかかる 4

5.

今日の流れ 説明して、ハンズオン。足りない所は、エラーを見てから足す はじめに 1. RG 2. VNet 3. NSG 4. VM 5〜6. Web ふりかえり なぜ今 Azure の土台 ネットワーク 通信の門番 サーバー az ssh、nginx みんなで考える インフラを学ぶか → RG を作る → VNet を作る → NSG を作る → VM を作る → Web を出す 片付け 当日は 2時間30分(休憩10分)で進めました 5

6.

AI に頼めば、インフラが立つ時代 6

7.

AI は、持っている力を広げる道具 わかっていないまま使うと、ゴミ(AI スロップ)が増えるだけ AI でインフラを立てるなら、何をしているかの最低限の理解は欠かせない 7

8.

だから、この勉強会では 自分の中の「解像度」を上げてから、AI に任せる つくる 足りないと、どうなるか 直す ポータルで、自分の手で作る 設定が足りないとエラーになる。それ を見る どこを見ればいいかを、体で覚える AI に聞くだけではわからない、実際にエラーを出して自分で直す体験をする回です 8

9.

01 シリーズと今日のゴール 4回でどこまで作るか、今日はどこまでか

10.

4回終わると、ここまで作れます AI チャットのアプリを、閉じたネットワークで、権限を絞って動かす 4回の流れ(今のイメージ) 第1回:土台(今日) 第2回:アプリを載せる 第3回:閉じる、権限 第4回:本番に寄せる 中身は変わることがあります 10

11.

今日のゴール 第1回の最後に、これが自分のサブスクにできている 自分で作った VM の Web ページを 、ブラウザで見られる ・実務ではほぼ使わない、簡単な構成 ・考えることを減らして、基本と観点に集中する 11

12.

今日は、意地悪な作り方をします 最初から全部を正しく設定しない。足りないとエラーになるので、そのつど足す 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 入れ物を作る ネットワークを作る 通信の門番を作る サーバーを作る サーバーに入る Web を出す ・わざと3回つまずく:NSG の関連付け、VM に入るロール、80番の規則 ・初めての人には難しく、慣れた人には物足りないかも 12

13.

前提条件 Azure のアカウント(個人で作った無料アカウントでよい)があり、次の2つができること 1. ポータルにサインインできる 2. Azure CLI が動く portal.azure.com を開いてサインイン この画面が出れば OK PowerShell、コマンド プロンプト、Mac のターミナルのどれかで az --version と打って、バージョンが出れば OK 13

14.

02 Azure の土台 テナント、サブスク、権限

15.

Azure の契約は、入口がいくつかある 会社に入ると、もう決まった契約の中で Azure を渡されることが多い 個人で申し込む 会社が直接契約 パートナー経由(CSP) 私たちと同じ EA、MCA 販売店から買う Web から申し込む Microsoft と直接 請求や管理を 無料アカウント、従量課金 請求も権限も自社で持つ パートナーがまとめる 15

16.

契約が違うと、何が変わる? 現場に入ったら、まず「うちはどの契約か」を確かめる 個人 会社が直接 CSP 請求書は誰が持つ 自分 自社 パートナー 費用を自分で見られるか 見られる 権限があれば見られる 既定では見えない サブスクを作る人 自分 自社の担当 パートナー 困ったときの相談先 自分で調べる Microsoft パートナー 16

17.

テナント、サブスク、リソースグループ Azure は入れ子の箱。どの箱に何があるかを押さえる テナント(Microsoft Entra ID) 管理グループ サブスクリプション リソースグループ テナント 組織の ID(ユーザー)の範囲 管理グループ サブスクをまとめて、同じルールをかける サブスクリプション 課金と管理の単位 リソースグループ まとめて作って、まとめて消せる単位 17

18.

Microsoft Entra ID とは Microsoft 365 などで使うアカウントと、その認証、認可をまとめて管理するサービス Entra ID がやること Azure がやること ユーザー、グループ、アプリを管理する サインイン(認証)と、MFA などの条件 「誰か」を確かめて、トークンを出す VM、VNet などのリソースを動かす サブスクは、1つのテナントを信頼する Azure の権限(RBAC)は Azure 側で付ける ・Azure とは別のサービス。ここが混ざりやすい ・テナントは1つのほうが管理しやすい ・お客さんの環境では、ゲストとして招待されて入ることが多い 18

19.

管理グループとは サブスクをまとめて、ルールと権限を一度にかける入れ物 本番 たとえば 「東日本以外に VM を作らせない」ルールを、本番のサブ スク全部に一度でかける ロールも、ここに付ければ下のサブスク全部に引き継がれる 開発 ・会社で使うもの。個人の勉強ならなくていい ・ロールやポリシーを、下にまとめてかけられる 19

20.

管理グループは、実際にはこう見える 見方 場所 上の検索で「管理グループ」 見る所 ルートの下に管理グループ、その下にサブスク ・管理グループは、ポリシーや会社のルー ルで分ける ・お金で分けるならサブスク(この部署は このサブスク) 20

21.

Azure Policy:上から固めて、危ない設定をできなくする ポイント 割り当てる所 管理グループ、サブスク、リソースグループ よくある例 このタグは必ず付ける よくある例 パブリック IP は作らせない どうしても要るとき 例外を申請して、許可をもらう ・上で割り当てると、下の全部にかかる ・細かく RG だけにもかけられる 21

22.

テナントは、ここで見る テナント(ディレクトリ)の名前と ID は、Entra ID の概要に出ている 設定値 場所 Microsoft Entra ID → 概要 見る所 テナント ID、プライマリ ドメイン ・初期ドメインは 〇〇 .onmicrosoft.com ・会社のドメインを使うテナントもある 22

23.

実務では、会社がどう分けているかを読む テナント、管理グループ、サブスク、RG の使い方は、会社ごとに違う テナント 会社や事業ごと 現場によっては、複数のテナントをまたいで作業する 管理グループ 本番、開発など お堅い会社でなければ、外部の人には見えないことが多い サブスクリプション 案件ごと 「このサブスクはこの案件」と分けている リソースグループ チームや用途ごと 多くの案件は、ここから下で作って構築する 23

24.

案件に入ったら、最初に確かめること 「どの箱の、どこまで触れるか」を最初に知る 1 どのテナントか 2 どこまで見えるか 3 自分のロールは何か ユーザー名の @ の後ろのドメインで見当がつく (テナントの初期ドメインは 〇〇.onmicrosoft.com) 管理グループ、サブスク、RG のどこまで見えるか (ポータル右上でディレクトリを切り替えられる) 見えている所での、自分のロール(IAM で確かめる) 24

25.

権限は2種類ある Entra ID が「誰か」を決め、Azure が「何ができるか」を決める Entra ID のロール Azure のロール(RBAC) ユーザー、グループなど ディレクトリの中身を管理する 例:グローバル管理者 VM、VNet などのリソースを管理する 例:所有者、共同作成者 今日の後半で使う ・サブスクの所有者でも、Entra ID の管理者ではない ・Entra ID のグローバル管理者でも、そのままでは Azure のリソースは触れない 25

26.

Entra ID の権限と Azure の権限は、別もの 公式にも、はっきりこう書いてある Microsoft Entra のロール割り当てによって Azure リソースにアクセス権が付与されることはなく、 Azure のロール割り当てによって Microsoft Entra ID にアクセス権が付与されることはありません。 Entra ID の[ロールと管理者] サブスクの[アクセス制御 (IAM)]→[役割] 26

27.

Entra ID にもライセンスがある Microsoft 365 と同じく、ユーザーごとの月額。上の版ほど守る機能が増える Free(今日の私たち) P1(Premium P1) P2(Premium P2) ユーザー、グループの管理 サインイン、MFA など基本の機能 条件付きアクセス カスタム ロール など PIM(特権 ID 管理) ID 保護(危ないサインインを止める)な ど ・会社によっては P1、P2 を買って、セキュリティを固めている ・Entra ID の画面に「P1 または P2 が必要」と出たら、ライセンスの話 27

28.

PIM:高い権限は、使うときだけ申請する ポイント PIM とは Privileged Identity Management(特 権 ID 管理) ふだん 「使える資格」だけを持っておく 使うとき 時間と理由を書いて申請し、有効にする 対象 Microsoft Entra ロールと、Azure リソースの ロール 必要なもの Entra ID P2 などのライセンス ・本番では、PIM で申請してから作業す る現場が多い 28

29.

MFA(多要素認証)は必須 アカウントを作るときに設定したはず。今は、これがないと Azure を操作できない 2024年10月〜 2025年10月1日〜 Azure ポータル、Entra 管理センター Azure CLI、PowerShell、IaC ツール での操作 での作成・更新・削除 ・パスワードが漏れても、それだけでは入れないようにする 29

30.

ハンズオン 1:リソースグループを作る 1. RG 2. VNet 設定値 サブスクリプション 自分のサブスク リソース グループ rg-bity-001 リージョン (Asia Pacific) Japan East 3. NSG 4. VM 5. az ssh 6. nginx 命名規則は、最初に決める 略語-案件-用途-環境-連番(例:rg-bity-001) 環境名は3文字にそろえる(dev、stg、prd) 連番を付けるなら末尾に 名前はあとから簡単に変えられない できたら rg-bity-001 が一覧に出ている 今日作るものは、全部この中に入れる 公式の略語:learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-bestpractices/resource-abbreviations 30

31.

03 ネットワーク VNet、サブネット、NSG

32.

IP アドレスと「/16」「/24」 IP は住所。「/」のあとの数字は、住所のまとまりの大きさ 10.0.0.0/16(VNet) 覚えること 約6万5千個の住所の大きなまとまり 数字が小さいほど、まとまりは大きい /16 の中を /24 で区切る 計算は覚えなくていい 10.0.0.0/24 10.0.1.0/24 … 約250個の区画 ほかの区画 32

33.

VNet とサブネット Azure の中に作る、自分専用のネットワーク VNet:vnet-bity-001(10.0.0.0/16) ポイント VNet は大きな敷地、サブネットは区画 区画ごとにルール(NSG)を付けられる サブネット:snet-bity-vm-001(10.0.0.0/24) VM はサブネットの中に置く ・IP は住所、/24 は区画の大きさ ・サブネットは5個の IP が使えない 33

34.

Tips:サブネットでは、IP が5個使えない 先頭の4個と最後の1個は Azure が使う /24 なら、使えるのは 251 個 34

35.

ハンズオン 2:VNet を作る 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 名前 vnet-bity-001 リージョン Japan East セキュリティ 触らない アドレス空間 10.0.0.0/16(既定のまま) 既定のサブネットの名前 snet-bity-vm-001 サイズ /24(既定のまま) ・新しい VNet のサブネットは、既定で 外に出られない(プライベート) 35

36.

ポート番号 IP が建物の住所なら、ポートは部屋番号 80 22 443 HTTP SSH HTTPS Web ページを見る サーバーに入って操作する 暗号化した Web(今日は使わない) 36

37.

NSG:通信の門番 決めた通信だけを通す。上から順に見て、最初に当たった規則で決まる ・既定の規則は消せない。上に足して上 書きする ・VNet の中どうしは通る。外からは全部 止める 37

38.

NSG は、作っただけでは門番にならない サブネット(か NIC)に関連付けて、はじめて通信を止める 作っただけ 関連付けた 規則は書いてあるが、どこにも立っていない門番 通信には何も起きない サブネットの入口に門番が立つ その中のリソース全部にかかる ・今日は、わざと関連付けずに進めて、あとでエラーを出す 38

39.

ハンズオン 3:NSG を作る(関連付けない) 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 リソース グループ rg-bity-001 名前 nsg-bity-vm-001 リージョン Japan East ・作るだけ。サブネットにはまだ付けない 39

40.

ハンズオン 3:22番(SSH)の規則を足す 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 場所 設定 → 受信セキュリティ規則 → +追加 ソース My IP address サービス SSH 優先度 100 名前 allow-ssh-myip ・22番は自分の IP だけに開ける 40

41.

Tips:22番は自分の IP だけに開ける SSH の規則の送信元は「自分の IP」にする 「どこからでも(0.0.0.0/0)」は開けない なぜ 22番を全部に開けると、世界中から総当たりでログインを試される 41

42.

04 サーバーを作る VM、パブリック IP、拡張機能

43.

パブリック IP と、外へ出る通信 入ってくる通信だけでなく、出ていく通信もある パブリック IP は 入ってくる(80、22) VM の NIC に付けるリソース VNet の中ではなく、入口の住所 自分の PC パブリック IP VM 出ていく(apt でパッケージを取る) ・パブリック IP がないと、どうなる? ・(入れないし、外にも出られない) 43

44.

答え:入れないし、外にも出られない 入口がなく、新しい VNet では出口も既定で閉じている 入れない 外にも出られない 自分の PC から VM への入口がない 80番も22番も届かない 新しい VNet のサブネットは、既定で外に出られない apt も失敗する 2026年3月31日より後の API で作る新しい VNet から、この動きになった 44

45.

外に出る道の選択肢 「既定で出られる」は新しい VNet ではなくなった。あとは明示的に道を作る 既定の送信アクセス(なくなった) 新しい VNet では使えない VM にパブリック IP 今日はこれ。一番簡単 NAT Gateway 本番でよく使う ロードバランサーの送信規則 ロードバランサーを使っているとき ファイアウォール経由 行き先を絞りたいとき 45

46.

NAT Gateway と ファイアウォール 外に出る先を絞る必要がなければ NAT Gateway、絞るならファイアウォール NAT Gateway ファイアウォール 良い:設定が簡単。出口の IP が固定される 良い:IP 1つで 64,512 の同時接続 弱い:通信の中身は見ない。行き先を絞れない 良い:行き先(FQDN)で絞れる。ログが残る 弱い:高い(Azure Firewall Standard は約199円/時+ 処理料) 弱い:ルートテーブルの設定も要る 46

47.

VM を作る前に:プロバイダーとクォータ Azure は「必要なときに、必要な機能を有効にして使う」仕組み リソースプロバイダー クォータ(上限) サブスクごとに登録する ポータルで作るときは、たいてい自動で登録される 登録には共同作成者か所有者の権限が要る サブスクごと、リージョンごとに、作れる量の上限がある 上限に当たると VM が作れない 上げるには申請する(Microsoft.Quota の登録が要る) ・上限を上げても、それだけではお金はかからない。かかるのは使った分だけ ・全部が最初から使えるわけではない。使うものを少しずつ開けていく ・RG だけ渡された人は、自分では登録できないことがある 47

48.

(作れない人だけ)VM のサイズが選べないとき 設定値 1. 開く 上の検索で「クォータ」→ マイ クォータ 2. 絞る プロバイダー:Compute、リージョン:Japan East 3. 探す Standard Bsv2 ファミリ vCPU 4. 増やす 右の鉛筆 → 新しい上限:2 → 送信 ・みんな作れたら飛ばす ・無料試用のサブスクは、上限を上げら れない 48

49.

(クォータの画面で求められたら)プロバイダーを登録する 設定値 1. 開く サブスクリプション → リソース プロバイダー 2. 絞る 名前で Microsoft.Quota 3. 登録 選んで、上の[登録] 4. 待つ 状態が Registered になれば OK ・登録には、サブスクの共同作成者か所 有者が要る 49

50.

VM に入る方法は、3つある 今日は3つ目。鍵もパスワードも使わない パスワード SSH の鍵 Entra ID(az ssh) 覚えやすいが、漏れやすい 総当たりで破られることも パスワードより安全 鍵のファイルの管理が要る VM ごとにばらばらになる いつものアカウントでサインイン MFA がかかる ロールで入れる人を決める ・ポータルは鍵かパスワードがないと作れないので、鍵は作るだけ作る 50

51.

ハンズオン 4:VM を作る(基本) 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 仮想マシン名 vm-bity-001 リージョン Japan East イメージ Ubuntu Server 24.04 LTS サイズ Standard_B2ts_v2 認証の種類 SSH 公開キー(ほかは既定) パブリック受信ポート なし ・鍵は作るけど使わない(ログインは az ssh) ・受信ポートは「なし」。NSG はサブネット で管理する 51

52.

ハンズオン 4:VM を作る(ネットワーク) 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 仮想ネットワーク vnet-bity-001 サブネット snet-bity-vm-001 パブリック IP 新規作成 → pip-bity-001 NIC の NSG なし ・NSG はサブネットか NIC の、どちらか 一方に 52

53.

Tips:NSG はサブネットか NIC の、どちらか一方に VM の作成画面では「NIC のネットワーク セキュリティ グループ:なし」にする 両方に付けると、両方で許可しないと通らない なぜ どちらで止まっているのかが、わかりにくくなる 53

54.

マネージド ID とは VM やアプリに付ける、Azure の中の身分証 今日の使い道 身分証を見せる Entra ID ログインの仕組みが、VM のマネージド ID を使う だから自動でオンになる VM Entra ID ポイント パスワードやキーを持たずに認証できる システム割り当て:VM と一緒にでき、一緒に消える 第3回の使い道 アプリが Storage や AI に、キーなしでつなぐ 54

55.

ハンズオン 4:VM を作る(管理) 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 Microsoft Entra ID でログイン オン システム割り当てマネージド ID 自動でオンになる 自動シャットダウン オン、午前1:00 タイムゾーン 大阪、札幌、東京 ・Entra ID ログインを選ぶと、マネージド ID も自動でオン 55

56.

ハンズオン 4:VM を作る(確認と作成) 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 確認する所 パブリック IP の名前、Entra ID ログイン 作成 秘密キーのダウンロードとリソースの作成 ・作れないときは、クォータかサイズの在 庫を疑う ・秘密キーは使わないので、片付けで消 す 56

57.

VM ができたら:拡張機能を見る 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 場所 vm-bity-001 → 拡張機能とアプリケーション 見る所 AADSSHLoginForLinux が Provisioning succeeded ・拡張機能:VM の中にあとから足す 小さなアプリ ・AADSSHLoginForLinux が入ってい れば OK 57

58.

わざとエラー①:何も届かない ブラウザで http://(パブリック IP)、ターミナルで az ssh を試す 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx ・待たされて失敗するなら、ネットワークを 疑う ・NSG を作っただけで、付けていない 58

59.

直す:NSG をサブネットに関連付ける 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 場所 vnet-bity-001 → サブネット → snet-bityvm-001 ネットワーク セキュリティ グループ nsg-bity-vm-001 最後に 保存 ・関連付けて、はじめて門番になる 59

60.

プライベート エンドポイントのネットワーク ポリシー ・PE に向かう通信に、NSG とルート テー ブルをかけるかどうか ・既定は無効 60

61.

05 サーバーに入って、Web を出す az ssh、ロール、nginx

62.

これから:az ssh で VM に入る NSG を付けたので、22番は自分の IP から届くようになった 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx ・Entra ID でサインインして入る ・ここで2つ目のエラーが出る 62

63.

SSH と az ssh 今日はパスワードも鍵も使わず、Entra ID の証明書で入る ① ② ③ Entra ID でサインイン SSH 用の証明書をもらう 22番で VM に入る az login した人の ID で az ssh が自動でやる VM がロールを確かめる ・鍵やパスワードは漏れる。Entra ID なら MFA がかかり、ロールを外せばすぐ入れなくなる 63

64.

管理の操作と、データの操作 VM を作れる人と、VM に入れる人は、わざと分けてある 管理の操作 データの操作 VM を作る、消す、設定を変える 所有者・共同作成者でできる VM に入る(ログイン) 「仮想マシンの管理者ログイン」などが要る ・所有者なのに入れない、をこのあと見る 64

65.

Tips:az の既定のサブスクを確かめる サブスクが複数あると、az が別のサブスクを見ていることがある az account show で確かめてから打つ 65

66.

わざとエラー②:所有者なのに入れない NSG は付けたので、今度は VM まで届く。でも入れない 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 コマンド az ssh vm -g rg-bity-001 -n vm-bity001 ・認証は通って、認可で弾かれている ・publickey と出るが、鍵の問題ではな い 66

67.

VM に関係するロールは、3つ 名前が似ているので、まちがえやすい 仮想マシンの管理者ログイン VM に入れる。入ったあと sudo が使える 仮想マシンのユーザー ログイン VM に入れる。sudo は使えない 仮想マシン共同作成者 VM を作る、止める、設定を変える。Entra ID で入る権限はない ・今日は nginx を入れるので、管理者ログイン 67

68.

直す:VM に入るロールを付ける 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 場所 vm-bity-001 → アクセス制御 (IAM) → + 追加 → ロールの割り当ての追加 ロール 仮想マシンの管理者ログイン メンバー 自分 ・今日は sudo を使うので、管理者ログ イン 68

69.

ロールはどこに付ける?(スコープ) 上で付けたロールは、下に引き継がれる 管理グループ サブスクリプション 下に引き継ぐ リソースグループ リソース(VM など) ・今日は最小権限で VM に付けた。VM がたくさんあるなら RG に付ける 69

70.

直す:付けたロールを確かめる 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 見る所 仮想マシンの管理者ログイン、スコープ:このリ ソース ・最小権限なら VM に付ける ・VM がたくさんあるなら RG に付ける 70

71.

Tips:RG の所有者なら何でもできる、は勘違い 所有者が持つのは「管理の操作」 VM に入る「データの操作」は、別のロールが要る なぜ 権限が足りないエラーは、まず「どの操作か」を見る 71

72.

ハンズオン 5:az ssh で入る 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 コマンド az ssh vm -g rg-bity-001 -n vm-bity001 待つ ロールを付けてから数分 ・Welcome to Ubuntu が出たら成功 72

73.

これから:nginx を入れる VM の中で、Web サーバーを動かす 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx ・apt でインターネットからパッケージを取 る ・外に出られるのは、パブリック IP がある から 73

74.

ハンズオン 6:nginx を入れる 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 1. パッケージの一覧を新しくする sudo apt-get -y update 2. nginx を入れる sudo apt-get -y install nginx 3. 動いているか見る systemctl status nginx ・コマンドはコピペでいい ・update はおまじないくらいでいい 74

75.

これから:80番で見る nginx は動いた。でも、まだブラウザからは見えない 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx ・NSG に 80番の規則がない ・使う直前に、80番を開ける 75

76.

ハンズオン 6:80番(HTTP)の規則を足す 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 場所 nsg-bity-vm-001 → 受信セキュリティ規則 → +追加 ソース Any サービス HTTP 優先度 110 名前 allow-http ・使う直前に開ける。先に開けておかな い 76

77.

ハンズオン 6:80番で見る 1. RG 2. VNet 3. NSG 4. VM 5. az ssh 6. nginx 設定値 ブラウザ http://(パブリック IP) ・Welcome to nginx! が出たら完成 77

78.

nginx を止めて比べる 「待たされる」か「すぐ拒否される」かで、疑う場所が変わる 待たされて失敗(わざとエラー①) すぐ拒否(nginx を止めたとき) 通信が途中で止められている → NSG などのネットワークを疑う 届いているが、相手が受けていない → アプリ(nginx)を疑う sudo systemctl stop nginx → ブラウザで確かめる → sudo systemctl start nginx 78

79.

片付け:リソースグループごと消す 設定値 場所 rg-bity-001 → リソース グループの削除 入力 rg-bity-001(名前をコピーして貼る) 最後に 削除 ・RG ごと消すと、中身がまとめて消える ・NetworkWatcherRG と秘密キーのフ ァイルも確かめる 79

80.

命名規則は、最初に決める あとから変えられない名前が多い。案件の最初に決めておく 公式の略語 rg、vnet、snet、nsg、vm、pip 案件の名前 bity 用途(サブネットなど) vm、pe、aca 環境名(3文字) dev、stg、prd 連番(末尾) 001 例:rg-bity-001、snet-bity-vm-001 80

81.

06 ふりかえり みんなで考える、まとめ、次回

82.

みんなで考えましょう 自分ならどう答えるか、考えてみてください NSG を作ったのに届かなかったのは、なぜ? 所有者なのに VM に入れなかったのは、なぜ? Web ページが見えないとき、どこから見る? 82

83.

みんなで考えましょう(答え) 自分の答えと比べてみてください NSG を作ったのに届かなかったのは、なぜ? NSG をサブネットに関連付けていなかったから。作っただけでは門番にならない 所有者なのに VM に入れなかったのは、なぜ? VM に入るロール(仮想マシンの管理者ログイン)がなかったから。所有者は管理の操作だけ Web ページが見えないとき、どこから見る? 待たされるなら NSG(ネットワーク)。すぐ拒否なら nginx(アプリ) 83

84.

まとめ 今日のゴール 自分で作った VM の Web ページを、ブラウザで見られた つまずいたときは 待たされるなら NSG、入れないならロール、すぐ拒否ならアプリを疑う 84

85.

次回:アプリを載せる 用意した Python のアプリを、Container Apps で動かす 次回やること Python のアプリと、前に置く nginx Container Registry 組み込み認証(Easy Auth) Foundry、ストレージ アカウント 閉域にはしないので VM は使わない 85

86.

参考リンク テナントとサブスクの関係 learn.microsoft.com/entra/fundamentals/how-subscriptions-associated-directory リソースプロバイダー learn.microsoft.com/azure/azure-resource-manager/management/resource-providers-and-types NSG の仕組み learn.microsoft.com/azure/virtual-network/network-security-group-how-it-works 既定の送信アクセス learn.microsoft.com/azure/virtual-network/ip-services/default-outbound-access Entra ID で Linux VM に SSH する learn.microsoft.com/entra/identity/devices/howto-vm-sign-in-azure-ad-linux 命名の略語 learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations 86