「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>AKSをセキュアに利用するためのテクニカルリファレンス]]

* 目次 [#i6b72ad0]
#contents

*環境 [#w097879b]

**シェル [#r96cf259]
-[[Azure Cloud Shell]] (Bash) からの作業を想定

-20分でタイムアウトしてしまうため、
--タイムアウトで、変数が失われてしまう。
--これを避けるため、パラメタ設定スクリプトを、
--[[テキスト・ファイル>#ta06f8f8]]などにコピーして残しておく。
--再開の際は、[[テキスト・ファイル>#ta06f8f8]]のスクリプトを再実行する。

**操作者の権限 [#i2ca26f6]
以下の権限を持つユーザで作業
-Ownerロール権限
-[[Azure Active Directory]]に対して[[SPN>Azure サービス プリンシパル]]を作成する権限

**その他 [#h2858ed5]

***アカウント [#r64cf9f2]
以下で固定になってるので、必要に応じて変更する。

-admin-username
 --admin-username azrefadmin

-admin-password
 --admin-password "p&ssw0rdp&ssw0rd"

***[[F/WへのFQDN追加>AKSをセキュアに利用する構築デモ(コピペ用)#t9e6d1e3]] [#fd9723b4]

***...見つけ次第、書く。 [#l2bf54bc]

*構成 [#k241e08b]

**全体構成図 [#hb722c2e]
[[AKS_TechnicalReference_v0.14(ppt).zip>https://nakama.blob.core.windows.net/mskk/2020_04_25_AKS_TechnicalReference_v0.14(ppt).zip]]に同梱のPPTから引用
#ref(無題.png,left,nowrap,全体構成図,60%)

**ネットワーク構成 [#j8e5bc60]

***構成概要 [#g52607bf]
[[コチラ>AKSをセキュアに利用するためのテクニカルリファレンス#h6e5b109]]の推奨設定と少々異なる([[プライベートAKSクラスタ>Azure Kubernetes Service (AKS)#m0c88b4a]]にする)。

-Azure CNI プラグインを利用した分離型 [[VNET>Azureの仮想ネットワーク]] 構成
-ARM API はプライベート化しない。
-Master API はプライベート化する。~
([[プライベートAKSクラスタ>Azure Kubernetes Service (AKS)#m0c88b4a]])
-実行ノードも既存の[[VNET>Azureの仮想ネットワーク]]に配置する。

※ サマリすると

-ARM API以外は、プライベート化し、
-実行ノードの公開は、
--[[Azure Private Endpoint]]経由(イントラ公開)
--DMZ経由(インターネット公開)

 となる。

***入力経路 [#rd647b7a]
インバウンド(イングレス

-アプリ
--イントラ公開~
[[Azure Private Endpoint]] → [[ILB(Internal Load Balancer)>Azure Load Balancer#p2404f03]] 
--インターネット公開~
[[Azure Application Gateway]] (DMZ) → [[Azure Private Endpoint]] → [[ILB(Internal Load Balancer)>Azure Load Balancer#p2404f03]] 

-保守アクセス
--イントラ公開~
[[Azure Private Endpoint]] 方式
--インターネット公開~
[[Azure Bastion]] 方式

***出力経路 [#v71f3c20]
アウトバウンド(エグレス

以下の併用
-[[Azure Firewall]]:インターネット・アクセス
-[[Azure Private Endpoint]]:Azureの他のサービスへのアクセス

***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureのサブネッティング]] [#l6d4f0a2]
-[[オンプレ模倣環境>#w3d31a84]]
-[[AKS 配置環境>#s8b3bd20]]

**認証・認可 [#taee4d4f]
保守用端末を [[VNET>Azureの仮想ネットワーク]] 内に設置する想定。

***Azureポータル, Azure CLI (ARM API) [#hccf0a02]
プライベート化しない(既存のアクセス制限機能を想定)

***[[制御プレーン>AKSをセキュアに利用するためのテクニカルリファレンス#gcac2445]]の実行アカウント ([[SPN>Azure サービス プリンシパル]]) [#b8d47c5d]
[[Managed ID 方式>AKSクラスタ作成・操作に必要な権限#i3b0bd60]]で作成する。

***ダッシュボード, Kubernetes CLI (Master API) [#z56fa98b]
-クラスタ管理者の[[kube config>AKSをセキュアに利用するためのテクニカルリファレンス#p6cdc458]]を使って、
-必要なら、追加でIPアドレス制限を想定

***AKSユーザ・アプリからのリソース・アクセス [#f379ef3c]
[[Secret機能>AKSユーザ・アプリからのリソース・アクセス#b3245666]]を使用

**基盤保守 [#g4364425]

***日次パッチ [#g4bcd917]
-ノード VM は日次パッチ適用(既定で自動)
-Kured をインストールして自動再起動させる。

***オンデマンド [#g297ed91]
必要に応じて

-[[制御プレーン>AKSをセキュアに利用するためのテクニカルリファレンス#n7feb42c]]
-[[ノードプール>AKSをセキュアに利用するためのテクニカルリファレンス#n7feb42c]]

バージョンアップを手動で実施。

**開発~デプロイ [#wfd95a03]
[[VNET>Azureの仮想ネットワーク]] 内に本番用コンテナ・レジストリを配置するのみ~
([[ACR(コンテナ・レジストリ)をプライベート化する。>Azure Kubernetes Service (AKS)#ja9f4fdf]])

*手順 [#o59fa2c7]

https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md

**[[準備作業>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#0-%E6%BA%96%E5%82%99%E4%BD%9C%E6%A5%AD]] [#qc8143b1]

***[[サブスクリプションの選択>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#%E3%82%B5%E3%83%96%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%81%B8%E6%8A%9E]] [#n722891b]

※ 必要に応じて、サブスクリプションの選択を行う。

※ 「SUBSCRIPTION_NAMEは各自で書き換え」とのこと。

※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

***[[パラメタの設定>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF-%E3%81%AE%E8%A8%AD%E5%AE%9A]] [#ybb4fcbb]

※ 「NAME_PREFIXは各自で書き換え」とのこと。

※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

***[[Azure CLI拡張機能のインストール>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#az-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E6%8B%A1%E5%BC%B5%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB]] [#qcfe77c9]

***[[AKS プレビュー機能のインストール>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#aks-%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E6%A9%9F%E8%83%BD%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB]] [#t6577ca4]

※ 「時間かかるので注意(20 分ぐらい)」とのこと。

**[[共通準備>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#1-%E5%85%B1%E9%80%9A%E6%BA%96%E5%82%99]] [#mbf85f6c]

***パラメタの設定 [#i5b6da65]
以下のパートのスクリプトを実行して、パラメタを設定

 # Parameters

※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

***リソース・グループの作成 [#v6f53a61]
以下のパートのスクリプトを実行

 # Create Resouce Group

-ログ用
 az group create --name $RG_OPS --location $LOCATION

-AKS環境用
 az group create --name $RG_AKS --location $LOCATION

-DMZ環境用
 az group create --name $RG_DMZ --location $LOCATION

-オンプレ模倣環境用
 az group create --name $RG_ONP --location $LOCATION

***[[診断ログ>Azureの監視と管理#lf757ca0]]・ストレージの作成 [#f35eaa64]
以下のパートのスクリプトを実行

 # Create Diagnostics Storage

※ インターネット・アクセス禁止オプションあり。

***[[Log Analytics]] & [[Application Insights]] の作成 [#rb0b0ae8]
以下のパートのスクリプトを実行

 # Create Log Analytics & AppInsights

※ [[Log Analytics]] は 90日ログ保持オプションあり。

***サブスクリプションのアクティビティ・ログの有効化 [#we77d08c]
以下のパートのスクリプトを実行

 # Enable Subscription Activity Logging

※ だが、現時点では UI から実施とのこと(動画も参考になる)。

-参考
--Azure Monitor での Azure アクティビティ ログの収集と分析 | Microsoft Docs~
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/activity-log-collect

**[[オンプレ模倣環境の作成>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#2-%E3%82%AA%E3%83%B3%E3%83%97%E3%83%AC%E6%A8%A1%E5%80%A3%E7%92%B0%E5%A2%83%E3%81%AE%E4%BD%9C%E6%88%90]] [#s5c0518d]
-[[VNET>Azureの仮想ネットワーク]]にVMを新設して、そこをオンプレに見立てるということらしい。

-[[全体構成図>#hb722c2e]]には「OA環境サブスクリプション」と~
あるが、別サブスクリプションでなくても良い。

-多分、後述の、[[Bastionの作成>#a74a73b8]]手順で代替できる~
(が、Private Link、Private Endpoint等を試したいのでコチラを優先したい)。

-あと、[[Azure Private Endpoint]] 引き込みを行うので、~
正確には、「[[オンプレ延伸>FgCF (Financial-grade Cloud Fundamentals)#aed3c834]]模倣環境」ではないだろうか?

***パラメタの設定 [#e47ddc2e]
以下のパートのスクリプトを実行して、パラメタを設定

 # Parameters

※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureのサブネッティング]]の作成 [#w3d31a84]
以下のパートのスクリプトを実行

 # Create Onpremise VNET

-[[VNET>Azureの仮想ネットワーク]]
 ONP_VNET_NAME="${NAME_PREFIX}-onprem-vnet"
 ONP_VNET_ADDRESS_PREFIXES=10.0.0.0/16
※ [[全体構成図>#hb722c2e]]と突合して、&color(red){サブネット構成を理解しておくと良い。};

-[[サブネット>Azureのサブネッティング]]

--デフォルトのサブネット(VM用)
 ONP_VNET_SUBNET_DEF_NAME=Default
 ONP_VNET_SUBNET_DEF_ADDRESS_PREFIX=10.0.0.0/24

--[[Azure Private Endpoint]]用~
外部のAzureサービスに接続するため。
 ONP_VNET_SUBNET_IES_NAME=InternalEndpointSubnet
 ONP_VNET_SUBNET_IES_ADDRESS_PREFIX=10.0.250.0/24
※ &color(red){IESじゃなくて、PES(PrivateEndpointSubnet)だね。};

***VMの作成 [#o3bafede]
以下のパートのスクリプトを実行

 # Create uservm1 (Public IP + Open RDP Port)

※ VM生成の[[Azure CLI]]スクリプトとして参考になる。~
  [[パブリックIP作成、NIC作成を別で行っている>Azure上に素早く環境を構築する#r34348fb]](が特に意味はない模様)。

※ オンプレの模倣ということで、Windows 10 を選択している?

※ Visual Studio のアクティブ・サブスクライバでない場合は、~
  Windows 10 ではなく Windows Server 2019 を利用(ライセンスの関係らしい)~
  既定のスクリプトは、Windows 10になっているので、必要に応じて変更。

※ 最後に「az vm open-port」でRDPポートを開けるオマケが付いているので注意。

**[[AKS 配置環境の準備>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#3-aks-%E9%85%8D%E7%BD%AE%E7%92%B0%E5%A2%83%E3%81%AE%E6%BA%96%E5%82%99]] [#y8ef1a98]

***パラメタの設定 [#r2212fa2]
以下のパートのスクリプトを実行して、パラメタを設定

 # Variables

※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureのサブネッティング]]の作成 [#s8b3bd20]
以下のパートのスクリプトを実行

 #Create VNET & Subnets

-[[VNET>Azureの仮想ネットワーク]]
 AKS_VNET_NAME="${NAME_PREFIX}-aks-vnet"
 AKS_VNET_ADDRESS_PREFIXES=10.0.0.0/8
※ [[全体構成図>#hb722c2e]]と突合して、&color(red){サブネット構成を理解しておくと良い。};

-[[サブネット>Azureのサブネッティング]]

--保守端末用
 AKS_VNET_SUBNET_MMS_NAME=ManagementSubnet
 AKS_VNET_SUBNET_MMS_ADDRESS_PREFIX=10.16.0.0/16

--[[ノードプール>AKSをセキュアに利用するためのテクニカルリファレンス#n7feb42c]]用
 AKS_VNET_SUBNET_NPS_NAME=NodepoolSubnet
 AKS_VNET_SUBNET_NPS_ADDRESS_PREFIX=10.1.0.0/16

--内部インバウンド用~
ノードプールの内部公開用
 AKS_VNET_SUBNET_IES_NAME=InternalEndpointSubnet
 AKS_VNET_SUBNET_IES_ADDRESS_PREFIX=10.11.0.0/16
※ &color(red){シェルではなく*.yamlから利用};

--[[Azure Private Endpoint]]用~
外部のAzureサービスに接続するため。
 AKS_VNET_SUBNET_PES_NAME=PrivateEndpointSubnet
 AKS_VNET_SUBNET_PES_ADDRESS_PREFIX=10.15.0.0/16

--[[Azure Private Link]]サービス用~
オンプレ模倣環境から接続するため。
 AKS_VNET_SUBNET_PLS_NAME=PrivateLinkServiceNatSubnet
 AKS_VNET_SUBNET_PLS_ADDRESS_PREFIX=10.12.0.0/16

--[[Azure Firewall]]用(インターネット・アクセス)
 AKS_VNET_SUBNET_FWS_NAME=AzureFirewallSubnet
 AKS_VNET_SUBNET_FWS_ADDRESS_PREFIX=10.31.0.0/16
※ &color(red){使っていない?};

--[[Azure Bastion]]用
 AKS_VNET_SUBNET_BTS_NAME=AzureBastionSubnet
 AKS_VNET_SUBNET_BTS_ADDRESS_PREFIX=10.30.0.0/16
※ &color(red){使っていない?};

>※ [[ノードプール>AKSをセキュアに利用するためのテクニカルリファレンス#n7feb42c]]のIP消費が多いので、~
 /16でサブネッティングしているとの事。

>※ しれっと、VNETの「az monitor diagnostic-settings create」をしている。

***周辺サービスの作成と引き込み [#nf0b7bbb]
-[[ACR>AKSをセキュアに利用するためのテクニカルリファレンス#zbb28090]] の作成と [[Azure Private Endpoint]] 引き込み
-[[ACR>Azure Container Registry]] の作成と [[Azure Private Endpoint]] 引き込み

--[[ACR>AKSをセキュアに利用するためのテクニカルリファレンス#zbb28090]] の作成~
--[[ACR>Azure Container Registry]] の作成~
以下のパートのスクリプトを実行
 # Create ACR
※ [[Azure Private Endpoint]] 引き込みをサポートするPremiumのskuを使用。~
※ インターネットアクセス禁止、[[Subscription Activity Logging>#we77d08c]]の出力先を指定

--[[Azure Private Endpoint]] 引き込み~
以下のパートのスクリプトを実行
 # Create PrivateLink to ACR
 ...
 # azrefarcacr... の A レコード作成
※ ココのスクリプトはPreviewなので変更の可能性アリとのこと → 特にDNS弄る所。~
※ 動画ではポータルから行っていると見せかけ、確定ボタン押下せず、スクリプトは流している。

-[[Azure SQL Database]] 作成と [[Azure Private Endpoint]] 引き込み
--[[Azure SQL Database]] 作成~
 ...
※ よくよく見ると、DBを作ってない(コロナ"COVID-19"の影響だということ)。~
 最終的には、以下の接続文字列でアクセス可能な[[SQL Server]]が必要になる。~
 jdbc:sqlserver://azrefarc.database.windows.net:1433;databaseName=pubs

--[[Azure Private Endpoint]] 引き込み~
以下のパートのスクリプトを実行
 # Service Endpoint for SQL DB
※ マネージド・インスタンスは、[[Azure Private Endpoint]] が使えない~
 らしいので [[Azure Service Endpoint]] を利用する(と言うエクスキューズがある)。~
※ 本来、[[コチラの手順>Azure Private Link#j1ec3c2f]]が参考になったハズ。~

-参考
--[[Azure SQL Databaseをプライベート化する。]]
--[[ACR(コンテナ・レジストリ)をプライベート化する。]]

***[[Azure Firewall]]の作成 [#d721831d]
-[[Azure Firewall]]の作成
 # Create Azure Firewall

-[[UDR>Azureの仮想ネットワーク#e8a3a7cc]]の設定~
以下のパートのスクリプトを実行
 # Create UDR and assign UDR
※ 既定の[[UDR>Azureの仮想ネットワーク#e8a3a7cc]]として、「AKS_UDR_NAME」を作成、~
 インターネット(0.0.0.0/0)への通信を[[Azure Firewall]]にルーティング

-ルールの作成~
以下のパートのスクリプトを実行
 # Create Firewall Rules

--プライベートAKSクラスタの要件~
以下のパートのスクリプトを実行
 # Required for private AKS cluster
 az network firewall application-rule create...
※ 前述の既定の[[UDR>Azureの仮想ネットワーク#e8a3a7cc]](AKS_UDR_NAME)をノードプールのサブネットに適用する。~
※ その他、[[MCR>AKSをセキュアに利用するためのテクニカルリファレンス#u4a1c468]]へのアクセスとか、云々、コレはMSに聞いたほうがいい感じやね。

--Azure での Linux VM の時刻同期~
以下のパートのスクリプトを実行
 # ntp.ubuntu.com -> *
 az network firewall network-rule create...

--プライベートAKSクラスタのオプション~
以下のパートのスクリプトを実行
 # Optional for AKS cluster
 az network firewall application-rule create...

--ContainersのAzure Monitor~
以下のパートのスクリプトを実行
 # Azure Monitor for containers
 az network firewall application-rule create...

--AKSクラスタの[[Azure Policy]]~
以下のパートのスクリプトを実行
 # Azure Policy for AKS clusters (preview, subject to be changed)
 az network firewall application-rule create...

>※ ルールの作成には、かなり時間がかかるらしい(10分ぐらい)。

***他によく必要になる URL [#e9101111]
-AKS ツール
--download.opensuse.org
--packages.microsoft.com
--dc.services.visualstudio.com
--*.opinsights.azure.com
--*.monitoring.azure.com
--gov-prod-policy-data.trafficmanager.net
--apt.dockerproject.org
--nvidia.github.io

-OS update
--download.opensuse.org
--*.ubuntu.com
--packages.microsoft.com
--snapcraft.io,api.snapcraft.io

**[[保守端末の準備>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#4-%E4%BF%9D%E5%AE%88%E7%AB%AF%E6%9C%AB%E3%81%AE%E6%BA%96%E5%82%99]] [#i3e20909]

***管理マシン(Windows)の作成 [#t74fd3eb]
オンプレから接続する踏み台VM相当。

-パラメタの設定~
以下のパートのスクリプトを実行して、パラメタを設定
 # Parameters
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

-[[UDR>Azureの仮想ネットワーク#e8a3a7cc]]の設定~
以下のパートのスクリプトを実行
 # UDR でルートを塞ぐ
※ 前述の既定の[[UDR>Azureの仮想ネットワーク#e8a3a7cc]](AKS_UDR_NAME)を指定。

-[[ILB, NIC>Azure Load Balancer#p2404f03]] の作成~
以下のパートのスクリプトを実行
 # ILB 配下に VM を作成
 # NIC を先に作成(IP アドレスを確定させる)
※ 後で、[[Azure Private Link]]を作成するので、ILB → NICと作成するのがポイント。

-[[Azure Firewall]]の設定~
以下のパートのスクリプトを実行
 # Azure Firewall ルールで Windows Update などを許可
 # Azure Firewall ルールで) Azureポータル(を許可
※ 同様に、ルールの作成には、かなり時間がかかるらしい(10分ぐらい?)。

-VM の作成~
以下のパートのスクリプトを実行
 # VM 作成 (Windows 2019)
 # Create mgmt-win-vm1
※ オンプレ(模倣)環境ではない、Azure環境ということで、コチラは、2019か。~
 しかし、踏み台VMにサーバーOSって、やっぱり高額になるのでは?と、少々、心配。

-[[Azure Private Link]], [[Azure Private Endpoint]] の作成~
以下のパートのスクリプトを実行
 # Private Link Service 作成
 # Create Private Endpoint to MgmtVM ILB
※ [[コチラの手順>Azure Private Link#j1ec3c2f]]が参考になる。

-ツールのインストール~
Windows上で環境を構築する。接続先のアドレスは、~
mgmt-win-vm1-ilb の [[Azure Private Endpoint]]で確認可能。

--AKSのバージョンを確認~
以下のパートのスクリプトを実行
 # Cloud Shell 上でインストールする aks バージョンを確認しておく

--[[Azure CLIをインストールしてログイン>Azure CLI]]

--先に取得したバージョン番号に対応する kubectl を
---az aks install-cliコマンドでバージョンを指定して実行すると、~
.azure-kubectl フォルダ下にダウンロードされるので、
 >az aks install-cli --client-version=1.16.7
・このファイルをコピーする。
 >copy %HOMEPATH%\.azure-kubectl\kubectl.exe %HOMEPATH%\kubectl.exe
・または、フィアルへのパスを通す。
 ...

---または、~
・下記 URL からダウンロードし~
https://storage.googleapis.com/kubernetes-release/release/v1.16.8/bin/windows/amd64/kubectl.exe~
・%HOMEPATH% 下へコピー~
https://v1-16.docs.kubernetes.io/ja/docs/tasks/tools/install-kubectl/~
https://v1-16.docs.kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-windows~

--Helm(v3 系列)をインストール
---下記 URL からダウンロード(持ち込み)~
https://get.helm.sh/helm-v3.1.2-windows-amd64.zip
---%HOMEPATH% 下へコピー~
helm.exe を mgmtvm1 の c:\users<username> にコピー

--VS Code
---下記 URL からダウンロード(持ち込み)~
https://code.visualstudio.com/download
---オフラインインストーラでインストール

--Microsoft Edge(Chromium 版)
---下記 URL からダウンロード(持ち込み)~
https://www.microsoft.com/en-us/edge/business/download
---オフラインインストーラでインストール

>※ 「持ち込み」となっているモノは、[[Azure Firewall]]で設定していないもの。

***管理マシン(Linux)の作成 [#v8603bfc]
踏み台VMから接続し、アプリのビルドや、Dockerコンテナ作業を行う。

-パラメタの設定~
以下のパートのスクリプトを実行して、パラメタを設定
 # Parameters
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

-[[UDR>Azureの仮想ネットワーク#e8a3a7cc]]の設定~
以下のパートのスクリプトを実行
 # UDR でルートを塞ぐ
※ 前述の既定の[[UDR>Azureの仮想ネットワーク#e8a3a7cc]](AKS_UDR_NAME)を指定。

-NICの作成~
以下のパートのスクリプトを実行
 # NIC を先に作成(IP アドレスを確定させる)
※ こちらは、[[Azure Private Link]]を構成しないので、[[ILB>Azure Load Balancer#p2404f03]]は不要。

-[[Azure Firewall]]の設定~
以下のパートのスクリプトを実行
 # Azure Firewall ルールで通信を許可
※ コチラは、JavaのビルドやDocker操作があるので、ソレ用に穴をあける。~
※ 同様に、ルールの作成には、かなり時間がかかるらしい(10分ぐらい?)。

-VM の作成~
以下のパートのスクリプトを実行
 # Create mgmt-linux-vm1 (Ubuntu)

-ツールのインストール~
Linux上で環境を構築する。

--0. VM にログイン~
Windows 保守端末 からログインする。
 ssh mgmt-linux-vm1

--1. Azure CLIのインストール~
https://docs.microsoft.com/ja-jp/cli/azure/install-azure-cli-apt?view=azure-cli-latest
 curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

--2. kubectl インストール~
https://v1-16.docs.kubernetes.io/ja/docs/tasks/tools/install-kubectl/
 sudo apt-get update && sudo apt-get install -y apt-transport-https
 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
 echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
 sudo apt-get update
 sudo apt-get install -y kubectl

--3. Docker インストール
 sudo apt-get update
 sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
 sudo apt-get update
 sudo apt-get install -y docker-ce
 sudo docker version

--4. Helm インストール
 sudo apt-get update
 sudo apt-get install snapd
 sudo snap install helm --classic

--[[Azure CLI]]の補足
---ログイン、~
Windowsだと、 Loopback Interface Redirectionだが、~
SSH端末だと、OAuth 2.0 Device Authorization Grantになる。
---必要に応じて、[[サブスクリプションの選択>#n722891b]]を行う。

***[[Bastionの作成>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#4-c-%E5%8F%82%E8%80%83-bastion-%E4%BD%9C%E6%88%90-%E6%99%82%E9%96%93%E3%81%8C%E3%81%8B%E3%81%8B%E3%82%8B]] [#a74a73b8]
[[オンプレ模倣環境の作成>#s5c0518d]]をスキップできる。

-パラメタの設定~
以下のパートのスクリプトを実行して、パラメタを設定
 BASTION_NAME="${NAME_PREFIX}-bastion"
 BASTION_PUBLIC_IP_NAME="${BASTION_NAME}-ip"
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

-[[Azure Bastion]]の作成~
以下のパートのスクリプトを実行
 az network public-ip create --name $BASTION_PUBLIC_IP_NAME --resource-group $RG_AKS --sku Standard
 az network bastion create --name $BASTION_NAME --public-ip-address $BASTION_PUBLIC_IP_NAME --resource-group $RG_AKS --vnet-name $AKS_VNET_NAME --location $LOCATION

>※ 結構、時間がかかる。

-利用方法は、VMの接続メニューに、RDP、SSHに加え、~
Bastionが追加されているのでコレを選択して利用する。

**[[AKS クラスタの作成と設定>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#5-aks-%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%81%AE%E4%BD%9C%E6%88%90]] [#f6298299]

***パラメタの設定 [#i3448515]
以下のパートのスクリプトを実行して、パラメタを設定

 # Parameters

※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

***AKS クラスタの作成 [#s0ea95d7]
-(必要に応じて)サービスプリンシパル作成~
[[Managed ID>Azure Managed ID]]を選択するので実施しない(既定値)。

-(必要に応じて)非プライベートクラスタ用経路作成~
プライベート・クラスタを選択するので実施しない(既定値)。

-AKS クラスタの作成~
以下のパートのスクリプトを実行
 # Create AKS Cluster ==============================================
 ...
 # Prepare for creating cluster
 ...
 # Create AKS Cluster ※ 時間がかかる
 az aks create ...既定値なら、既定のオプションでOK...
 ...
 # VNET に対する Contributor 権限を与える(VNET が管理リソースグループの外にあるため)
 # Managed ID 方式の場合
 ...
 # End of Create AKS Cluster ==============================================
※ コレは、[[ココ>AKSクラスタ作成・操作に必要な権限#db6b9d7e]]の話。

***AKS の設定 [#t3e95a42]
-ACR との接続~
-[[ACR>Azure Container Registry]] との接続~
以下のパートのスクリプトを実行
 # Configure ACR for connecting from AKS
※ コレは、[[ココ>Azure サービス プリンシパル#e9e4c0d9]]の話。~
※ 2~3分かかるらしい。

-Azure Monitor の有効化~
以下のパートのスクリプトを実行
 # Azure Monitor for AKS 有効化
 ... 
※ 数分、時間がかかる。

-診断設定の有効化~
以下のパートのスクリプトを実行
 # AKS 診断設定の有効化
 ...
※ 数分、時間がかかる。

**[[アプリのビルドとデプロイ>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#6-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%85%8D%E7%BD%AE]] [#f3b622a9]

***kubectl/kubeconfig の準備 [#jc45f7bc]
-uservm1 > mgmt-win-vm1, mgmt-linux-vm1 へのログイン

-~/.kube/config ファイルの取得とコピー(非 admin, admin の 2 種類)
--[[6-a. mgmt-win-vm1 上で作業>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#6-b-mgmt-linux-vm1-%E4%B8%8A%E3%81%A7%E4%BD%9C%E6%A5%AD]]
--[[6-b. mgmt-linux-vm1 上で作業>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#6-b-mgmt-linux-vm1-%E4%B8%8A%E3%81%A7%E4%BD%9C%E6%A5%AD]]

※ .kubeに、configとadmin-configファイルが作成される。~
 既定では、configが利用される(必要に応じて切り替える)。

***コンテナ・イメージの作成 [#j8b4ecf1]
[[AKS_TechnicalReference_v0.14(ppt).zip>https://nakama.blob.core.windows.net/mskk/2020_04_25_AKS_TechnicalReference_v0.14(ppt).zip]]に同梱の~
構築サンプルアプリ.zipを mgmt-windows-vm1 に持ち込んで作業する。

-ビルドできるように[[Azure Firewall]]に穴をあける。
--[[6-d. Cloud Shell 上で実施>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#6-d-cloud-shell-%E4%B8%8A%E3%81%A7%E5%AE%9F%E6%96%BD]]

-ファイルを mgmt-linux-vm1 に scp で転送し、~
mgmt-linux-vm1 でコンテナをビルドし、作成したコンテナ・イメージを~
コンテナ・レジストリにプッシュ(2 つのバージョンをプッシュ)
--[[6-e. mgmt-windows-vm1 上で実施>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#6-e-mgmt-windows-vm1-%E4%B8%8A%E3%81%A7%E5%AE%9F%E6%96%BD]]

***アプリのデプロイ [#zdb0da67]
YAML ファイルを作成し、kubectl apply を実行し、~
コンテナ・イメージのデプロイ展開を確認する。~
最後に、コンテナ・イメージを切り替える。~
(ダッシュボードの表示も行う)

-[[6-f. アプリの配置>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#6-f-%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%85%8D%E7%BD%AE]]

※ コンテナ・イメージの~
 レジストリ名(先頭)とタグ名(末尾)~
 の部分は必要に応じて変更する。

※ DBアクセスは動かなくても確認はできる。~
 DBアクセスをテストするなら、[[コチラで言及されているSQL DB>#nf0b7bbb]]を作成。
 手順としては、(...後でどこかに書くか)

**[[オンプレ模倣環境から AKS アプリへの接続>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#7-%E3%82%AA%E3%83%B3%E3%83%97%E3%83%AC%E6%A8%A1%E5%80%A3%E7%92%B0%E5%A2%83%E3%81%8B%E3%82%89-aks-%E3%82%A2%E3%83%97%E3%83%AA%E3%81%B8%E3%81%AE%E6%8E%A5%E7%B6%9A]] [#u8505db2]

***AKS ILB に対する Private Link Service の作成 [#u85b7a55]
以下のパートのスクリプトを実行

 # AKS ILB に対する Private Link Service の作成

***AKS ILB への Private Endpoint の作成 [#g631313b]
以下のパートのスクリプトを実行

 # Create Private Endpoint to AKS

**[[インターネットからの接続>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#8-%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%8B%E3%82%89%E3%81%AE%E6%8E%A5%E7%B6%9A]] [#i43bee2c]

***パラメタの設定 [#xfbb1a53]
以下のパートのスクリプトを実行して、パラメタを設定

 # Parameters

※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ)。

***DMZ VNET の作成 [#y114c9c2]
以下のパートのスクリプトを実行
 # Create VNET and Subnets

***AKS ILB への Private Endpoint の作成 [#nbeddae0]
以下のパートのスクリプトを実行
 # Create AKS Private Endpoint

***Application Gateway の作成 [#g4c99b7e]
以下のパートのスクリプトを実行
 # Create AppGateway
 ...
 # Private Endpoint の IP アドレスを取得
 ...
 # AppGw 作成 ※ 時間がかかる

***可用性テストの作成 [#qfae28c3]
「URL の Ping テスト」を構成する。

※ 現時点では UI から実施とのこと(動画も参考になる)。~
※ az コマンドではできない (ARM テンプレートのみ可)

-参考
--Microsoft Docs
---Web サイトの可用性と応答性の監視~
https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/monitor-web-app-availability
---Resource Manager テンプレートでのメトリック アラートの作成~
可用性テスト用のテンプレートとメトリック アラート~
https://docs.microsoft.com/ja-jp/azure/azure-monitor/platform/alerts-metric-create-templates#template-for-an-availability-test-along-with-a-metric-alert

**[[ノード自動再起動>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#9-%E3%83%8E%E3%83%BC%E3%83%89%E8%87%AA%E5%8B%95%E5%86%8D%E8%B5%B7%E5%8B%95]] [#l2b5181b]

Kured による VM のリブートで自動更新を取り込むAKS のアップグレード

***経路の解放 [#id240e90]
以下のパートのスクリプトを実行

-VMからgcr(Google コンテナ・レジストリ)
 # Kured インストールに必要な FQDN の解放
 ...

-実行ノードからgcr(Google コンテナ・レジストリ)
 # AKS ノードがコンテナを取得するために必要な経路の解放
 ...

※ Kured は、Helmを使用して、gcr経由で配布するらしい。~
※ なお、この作業は、保守端末からではなく、~
 [[Azure Cloud Shell]] (Bash) か、[[Azure CLI]]で行う。

***Helmでインストール [#ieb33038]
以下のパートのスクリプトを実行

 # mgmt-linux-vm1 または mgmt-win-vm1 上から Kured をインストール

※ この作業は、Windows or Linuxの保守端末上、どちらでもOK。

**[[モニタリング(監視)>https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md#10-%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%E7%9B%A3%E8%A6%96]] [#u74329e5]

***モニタリングツールの確認 [#h4d8334c]
-[[Azure Monitor]] k8s Insights

-k8s ダッシュボード~
live data は実行ノードと直接通信できるところ~
=mgmt-windows-vm1 上からでしか確認できない。

***Pod 操作履歴 [#v72da782]
kubectl rollout history で確認できる。

 >kubectl rollout history deployment.v1.apps/web --namespace azrefarc-springboot
 deployment.apps/web
 REVISION  CHANGE-CAUSE
 1         <none>
 3         <none>
 4         <none>

 >kubectl rollout history deployment.v1.apps/web --namespace azrefarc-springboot --revision=4
 deployment.apps/web with revision #4
 Pod Template:

*切り分け [#n60154f3]
-うーん、動かないですね。
-色々、切り分けの戦略を立てよう。

**Javaアプリ [#l3c5f53f]
-そもそもDB作ってないので、初期化でDB接続してコケてたりしないか?と。

-もっと簡単な、HTMLを表示するダケのコンテナ・イメージを作成して、

-それを、*.yamlの
 image: ***azrefarc7aksacr.azurecr.io/azrefarc.springboot:1***
と差し替えたら、良いのでは?と。

-手頃なモノを探していたら、以下を発見。
--docker+Node.js(Express)の最小構成プロジェクトを作成する - Qiita~
https://qiita.com/ryo-ohnishi/items/b54e649b14b51694ef77
>詳しい手順は[[コチラ>AKSをセキュアに利用する構築デモ(コピペ用)#lfb210f2]]に書く。

**Firewall外し [#ta823b80]
-なんとなく、[[Azure Firewall]]が悪さしている気もした。

-実際、
--[[コチラ>AKSをセキュアに利用する構築デモ#fd9723b4]]の様なケースもあったし、
--[[Javaアプリ>#l3c5f53f]]を、[[voting-app>Azure Kubernetes Service (AKS)#c7683828]]に変更したときも、~
「registry-1.docker.io」を別途、追加したりした。

-と言う事で、以下のように実行~
...と言うのも、プライベートAKSクラスタ作成で、~
「An existing route table has not been associated with NodepoolSubnet.~
Please update the route table association」などと言いよるので。

--実行方法
 # Create UDR and assign UDR

---Firewallの作成は、通常通り実行する。
 # Create Azure Firewall

---ルーティングの変更も、通常通り実行する。~
良く解って無いが、以下が、AKS_VNET全体に適用される模様。
 # Create UDR and assign UDR
 ...
 # UDR でルートを塞ぐ
 ...

---ルールの作成に関しては、[[ガバガバ版>AKSをセキュアに利用する構築デモ(コピペ用)#ce13e773]]に変更して実行する。
 # Create Firewall Rules
 ...
 # Azure Firewall ルールで ... などを許可
 ...

**保守端末 [#o5cf99dd]
-1つはゴリゴリのWindows開発環境([[Docker Desktop for Windows]])にしてしまう。
-[[Azure Firewall]]を作っても、ココだけ[[Firewallをガバガバに設定>#ta823b80]]可能。
-ローカルで、Dockerビルドして、動作確認したモノを、迅速に[[ACR>AKSをセキュアに利用するためのテクニカルリファレンス#zbb28090]]にプッシュ。
-ローカルで、Dockerビルドして、動作確認したモノを、迅速に[[ACR>Azure Container Registry]]にプッシュ。

*検討事項 [#p1fe10e0]
最後に

>「コレ以外にも、下も検討が必要です」

と言う話があったが、

>「(疲れたので、)もうエエわ」

と言う感想(暫く休ませて下さい)。

**HTTPS化やWAFの導入 [#l0a54701]

**[[Azure Active Directory]]認証統合 [#gbcd98d1]
-[[AKS Master APIにAzAD認証を統合する。]]
-...その他、アプリの認証の検討も必要...

**[[K8s>Azure Kubernetes Service (AKS)#x4a72daa]]の機能活用 [#j94f00bd]

**[[CI/CD]]のワークフロー化 [#la16e1f4]
-[[CI/CD パイプライン]]と言われるが、
-実は、[[コンテナのチェーン]]だと思う。

*終わりに [#h989f86d]

**結果 [#p70dd76f]
一部、未達があるが、~
一通り動かすことが出来た。

**感想 [#b80fc51a]
このハンズオン?をやってみた感想については、

-[[コチラ(検討事項)>#p1fe10e0]]
-[[コンテナのチェーン]]
-[[開発基盤部会 Blog>#g81e9e9e]]

などを、ご参照下さい。

**未達部 [#x06340da]
-以下、機会があればやりたいです。

--一部、アウトバウンドが[[ガバガバ設定>#ta823b80]]
--アプリは結局、Javaではなく[[voting-appを>#l3c5f53f]]使った。
--外部RDBを使用するケースを試せていない。

-後は、シェル流をしながら「なるほど、冪等性」と思ったので、~
「[[クラウド・インフラ自動化]]」の辺りにもチャレンジしたいと思っています。

*お土産のシェル [#a9ba18b6]

**再開用のシェル [#ta06f8f8]
動画で「テキスト・ファイルに保持しておいて。」と言ってたアレ。

-&color(red){XXXXXXXXX};は置換して利用。
-★は、コピー後、消す行のマーカー

***★初期化パラメタ [#ecb71389]
-★サブスクリプション

--★BASH用
 SUBSCRIPTION_NAME=XXXXXXXXX
 az account set -s "$SUBSCRIPTION_NAME"
 SUBSCRIPTION_ID=$(az account show -s "$SUBSCRIPTION_NAME" --query id -o tsv)

--★CMD用
 SET SUBSCRIPTION_NAME=XXXXXXXXX
 az account set -s %SUBSCRIPTION_NAME%
 FOR /F "usebackq" %i IN (`az account show -s "%SUBSCRIPTION_NAME%" --query id -o tsv`) DO SET SUBSCRIPTION_ID=%i
 
-★プレフィックス、ロケーション
--★BASH用
 NAME_PREFIX=daisukenishino
 LOCATION=japaneast

--★CMD用
 SET NAME_PREFIX=daisukenishino
 SET LOCATION=japaneast

***★準備 [#x2449c83]
-★リソースグループ準備
 RG_OPS="${NAME_PREFIX}-ops-rg"
 RG_AKS="${NAME_PREFIX}-aks-rg"
 RG_DMZ="${NAME_PREFIX}-dmz-rg"
 RG_ONP="${NAME_PREFIX}-onprem-rg"

-★ログの準備1
 DIAG_STORAGE_NAME="${NAME_PREFIX}aksdiag"
 DIAG_LA_WS_NAME="${NAME_PREFIX}-aks-laws"
 DIAG_AI_APP_NAME="${NAME_PREFIX}-aks-ai"

-★ログの準備2
 DIAG_STORAGE_ID=$(az storage account show --name $DIAG_STORAGE_NAME --query id -o tsv)
 DIAG_LA_WS_GUID=$(az monitor log-analytics workspace show --workspace-name $DIAG_LA_WS_NAME --resource-group $RG_OPS --query customerId -o tsv)
 DIAG_LA_WS_ID=$(az monitor log-analytics workspace show --workspace-name $DIAG_LA_WS_NAME --resource-group $RG_OPS --query id -o tsv)
 DIAG_LA_WS_KEY=$(az monitor log-analytics workspace get-shared-keys --workspace-name $DIAG_LA_WS_NAME --resource-group $RG_OPS --query primarySharedKey -o tsv)

***★環境構築 [#b588803a]
-★オンプレ模倣環境
 ONP_VNET_NAME="${NAME_PREFIX}-onprem-vnet"
 ONP_VNET_ADDRESS_PREFIXES=10.0.0.0/16
 ONP_VNET_SUBNET_DEF_NAME=Default
 ONP_VNET_SUBNET_DEF_ADDRESS_PREFIX=10.0.0.0/24
 ONP_VNET_SUBNET_IES_NAME=InternalEndpointSubnet
 ONP_VNET_SUBNET_IES_ADDRESS_PREFIX=10.0.250.0/24

-★AKS環境
 AKS_VNET_NAME="${NAME_PREFIX}-aks-vnet"
 AKS_VNET_ADDRESS_PREFIXES=10.0.0.0/8
  
 AKS_VNET_SUBNET_PES_NAME=PrivateEndpointSubnet
 AKS_VNET_SUBNET_PES_ADDRESS_PREFIX=10.15.0.0/16
 AKS_VNET_SUBNET_PLS_NAME=PrivateLinkServiceNatSubnet
 AKS_VNET_SUBNET_PLS_ADDRESS_PREFIX=10.12.0.0/16
 AKS_VNET_SUBNET_IES_NAME=InternalEndpointSubnet
 AKS_VNET_SUBNET_IES_ADDRESS_PREFIX=10.11.0.0/16
 AKS_VNET_SUBNET_NPS_NAME=NodepoolSubnet
 AKS_VNET_SUBNET_NPS_ADDRESS_PREFIX=10.1.0.0/16
 AKS_VNET_SUBNET_FWS_NAME=AzureFirewallSubnet
 AKS_VNET_SUBNET_FWS_ADDRESS_PREFIX=10.31.0.0/16
 AKS_VNET_SUBNET_BTS_NAME=AzureBastionSubnet
 AKS_VNET_SUBNET_BTS_ADDRESS_PREFIX=10.30.0.0/16
 AKS_VNET_SUBNET_MMS_NAME=ManagementSubnet
 AKS_VNET_SUBNET_MMS_ADDRESS_PREFIX=10.16.0.0/16
  
 ACR_NAME="${NAME_PREFIX}aksacr"
  
 FW_NAME="${NAME_PREFIX}-aks-fw"
 FW_PUBLIC_IP_NAME="${FW_NAME}-ip"
 FW_IP_CONFIG="${FW_NAME}-config"
  
 AKS_UDR_NAME="${NAME_PREFIX}-udr"

-★保守環境

--★Windows端末
 MGMT_WIN_VM_NAME=mgmt-win-vm1
 MGMT_WIN_VM_NIC_NAME="${MGMT_WIN_VM_NAME}-nic"
 MGMT_WIN_VM_ILB_NAME="${MGMT_WIN_VM_NAME}-ilb"

--★Linux端末
 MGMT_LINUX_VM_NAME=mgmt-linux-vm1
 MGMT_LINUX_VM_NIC_NAME="${MGMT_LINUX_VM_NAME}-nic"

--★[[Azure Bastion]]
 BASTION_NAME="${NAME_PREFIX}-bastion"
 BASTION_PUBLIC_IP_NAME="${BASTION_NAME}-ip"

-★AKSクラスタ
 AKS_SP_NAME="${NAME_PREFIX}-aks-sp"
 AKS_CLUSTER_NAME="${NAME_PREFIX}-aks"
 AKS_SERVICE_CIDR=10.10.0.0/16
 AKS_DNS_SERVICE_IP=10.10.0.10

-★DMZ環境
 DMZ_VNET_NAME="${NAME_PREFIX}-dmz-vnet"
 DMZ_VNET_ADDRESS_PREFIXES=10.0.0.0/16
 DMZ_VNET_SUBNET_AGW_NAME=AppGwSubnet
 DMZ_VNET_SUBNET_AGW_ADDRESS_PREFIX=10.0.0.0/24
 DMZ_VNET_SUBNET_IES_NAME=InternalEndpointSubnet
 DMZ_VNET_SUBNET_IES_ADDRESS_PREFIX=10.0.250.0/24

**[[コピペ用シェル>AKSをセキュアに利用する構築デモ(コピペ用)]] [#u2ebb941]

*参考 [#r7d2f9fc]
**[[テクニカルリファレンス中の...>AKSをセキュアに利用するためのテクニカルリファレンス#icc83da1]] [#g9f9b38f]
-https://github.com/tsubasaxZZZ/aks-hardway
--https://github.com/tsubasaxZZZ/aks-hardway/blob/master/deploy-private-cluster.md

**OSSC > 開発基盤部会 Blog [#g81e9e9e]
-セキュアなプライベートAKS構築が出来たので報告。~
https://www.osscons.jp/jo64zcvfj-537/

----
Tags: [[:クラウド]], [[:コンテナ]], [[:Azure]], [[:AKS]], [[:IaC]], [[:セキュリティ]], [[:通信技術]], [[:セキュリティ]], [[:認証基盤]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS