AKSをセキュアに利用する構築デモ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>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をセキュアに利用する構築デモ(コ...
***...見つけ次第、書く。 [#l2bf54bc]
*構成 [#k241e08b]
**全体構成図 [#hb722c2e]
[[AKS_TechnicalReference_v0.14(ppt).zip>https://nakama.bl...
#ref(無題.png,left,nowrap,全体構成図,60%)
**ネットワーク構成 [#j8e5bc60]
***構成概要 [#g52607bf]
[[コチラ>AKSをセキュアに利用するためのテクニカルリファレ...
-Azure CNI プラグインを利用した分離型 [[VNET>Azureの仮想...
-ARM API はプライベート化しない。
-Master API はプライベート化する。~
([[プライベートAKSクラスタ>Azure Kubernetes Service (AKS...
-実行ノードも既存の[[VNET>Azureの仮想ネットワーク]]に配置...
※ サマリすると
-ARM API以外は、プライベート化し、
-実行ノードの公開は、
--[[Azure Private Endpoint]]経由(イントラ公開)
--DMZ経由(インターネット公開)
となる。
***入力経路 [#rd647b7a]
インバウンド(イングレス
-アプリ
--イントラ公開~
[[Azure Private Endpoint]] → [[ILB(Internal Load Balancer...
--インターネット公開~
[[Azure Application Gateway]] (DMZ) → [[Azure Private End...
-保守アクセス
--イントラ公開~
[[Azure Private Endpoint]] 方式
--インターネット公開~
[[Azure Bastion]] 方式
***出力経路 [#v71f3c20]
アウトバウンド(エグレス
以下の併用
-[[Azure Firewall]]:インターネット・アクセス
-[[Azure Private Endpoint]]:Azureの他のサービスへのアク...
***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureの...
-[[オンプレ模倣環境>#w3d31a84]]
-[[AKS 配置環境>#s8b3bd20]]
**認証・認可 [#taee4d4f]
保守用端末を [[VNET>Azureの仮想ネットワーク]] 内に設置す...
***Azureポータル, Azure CLI (ARM API) [#hccf0a02]
プライベート化しない(既存のアクセス制限機能を想定)
***[[制御プレーン>AKSをセキュアに利用するためのテクニカル...
[[Managed ID 方式>AKSクラスタ作成・操作に必要な権限#i3b0b...
***ダッシュボード, Kubernetes CLI (Master API) [#z56fa98b]
-クラスタ管理者の[[kube config>AKSをセキュアに利用するた...
-必要なら、追加でIPアドレス制限を想定
***AKSユーザ・アプリからのリソース・アクセス [#f379ef3c]
[[Secret機能>AKSユーザ・アプリからのリソース・アクセス#b3...
**基盤保守 [#g4364425]
***日次パッチ [#g4bcd917]
-ノード VM は日次パッチ適用(既定で自動)
-Kured をインストールして自動再起動させる。
***オンデマンド [#g297ed91]
必要に応じて
-[[制御プレーン>AKSをセキュアに利用するためのテクニカルリ...
-[[ノードプール>AKSをセキュアに利用するためのテクニカルリ...
バージョンアップを手動で実施。
**開発~デプロイ [#wfd95a03]
[[VNET>Azureの仮想ネットワーク]] 内に本番用コンテナ・レジ...
([[ACR(コンテナ・レジストリ)をプライベート化する。>Azu...
*手順 [#o59fa2c7]
https://github.com/tsubasaxZZZ/aks-hardway/blob/master/de...
**[[準備作業>https://github.com/tsubasaxZZZ/aks-hardway/b...
***[[サブスクリプションの選択>https://github.com/tsubasax...
※ 必要に応じて、サブスクリプションの選択を行う。
※ 「SUBSCRIPTION_NAMEは各自で書き換え」とのこと。
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
***[[パラメタの設定>https://github.com/tsubasaxZZZ/aks-ha...
※ 「NAME_PREFIXは各自で書き換え」とのこと。
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
***[[Azure CLI拡張機能のインストール>https://github.com/t...
***[[AKS プレビュー機能のインストール>https://github.com/...
※ 「時間かかるので注意(20 分ぐらい)」とのこと。
**[[共通準備>https://github.com/tsubasaxZZZ/aks-hardway/b...
***パラメタの設定 [#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]]・ストレージの...
以下のパートのスクリプトを実行
# Create Diagnostics Storage
※ インターネット・アクセス禁止オプションあり。
***[[Log Analytics]] & [[Application Insights]] の作成 [#...
以下のパートのスクリプトを実行
# Create Log Analytics & AppInsights
※ [[Log Analytics]] は 90日ログ保持オプションあり。
***サブスクリプションのアクティビティ・ログの有効化 [#we7...
以下のパートのスクリプトを実行
# Enable Subscription Activity Logging
※ だが、現時点では UI から実施とのこと(動画も参考になる...
-参考
--Azure Monitor での Azure アクティビティ ログの収集と分...
https://docs.microsoft.com/ja-jp/azure/azure-monitor/plat...
**[[オンプレ模倣環境の作成>https://github.com/tsubasaxZZZ...
-[[VNET>Azureの仮想ネットワーク]]にVMを新設して、そこをオ...
-[[全体構成図>#hb722c2e]]には「OA環境サブスクリプション」...
あるが、別サブスクリプションでなくても良い。
-多分、後述の、[[Bastionの作成>#a74a73b8]]手順で代替できる~
(が、Private Link、Private Endpoint等を試したいのでコチ...
-あと、[[Azure Private Endpoint]] 引き込みを行うので、~
正確には、「[[オンプレ延伸>FgCF (Financial-grade Cloud Fu...
***パラメタの設定 [#e47ddc2e]
以下のパートのスクリプトを実行して、パラメタを設定
# Parameters
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureの...
以下のパートのスクリプトを実行
# 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上に...
※ オンプレの模倣ということで、Windows 10 を選択している?
※ Visual Studio のアクティブ・サブスクライバでない場合は、~
Windows 10 ではなく Windows Server 2019 を利用(ライ...
既定のスクリプトは、Windows 10になっているので、必要...
※ 最後に「az vm open-port」でRDPポートを開けるオマケが付...
**[[AKS 配置環境の準備>https://github.com/tsubasaxZZZ/aks...
***パラメタの設定 [#r2212fa2]
以下のパートのスクリプトを実行して、パラメタを設定
# Variables
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureの...
以下のパートのスクリプトを実行
#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をセキュアに利用するためのテクニカル...
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をセキュアに利用するためのテクニカル...
/16でサブネッティングしているとの事。
>※ しれっと、VNETの「az monitor diagnostic-settings creat...
***周辺サービスの作成と引き込み [#nf0b7bbb]
-[[ACR>Azure Container Registry]] の作成と [[Azure Privat...
--[[ACR>Azure Container Registry]] の作成~
以下のパートのスクリプトを実行
# Create ACR
※ [[Azure Private Endpoint]] 引き込みをサポートするPremiu...
※ インターネットアクセス禁止、[[Subscription Activity Log...
--[[Azure Private Endpoint]] 引き込み~
以下のパートのスクリプトを実行
# Create PrivateLink to ACR
...
# azrefarcacr... の A レコード作成
※ ココのスクリプトはPreviewなので変更の可能性アリとのこと...
※ 動画ではポータルから行っていると見せかけ、確定ボタン押...
-[[Azure SQL Database]] 作成と [[Azure Private Endpoint]]...
--[[Azure SQL Database]] 作成~
...
※ よくよく見ると、DBを作ってない(コロナ"COVID-19"の影響...
最終的には、以下の接続文字列でアクセス可能な[[SQL Serve...
jdbc:sqlserver://azrefarc.database.windows.net:1433;dat...
--[[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]]として、...
インターネット(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]](A...
※ その他、[[MCR>AKSをセキュアに利用するためのテクニカルリ...
--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 ...
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-har...
***管理マシン(Windows)の作成 [#t74fd3eb]
オンプレから接続する踏み台VM相当。
-パラメタの設定~
以下のパートのスクリプトを実行して、パラメタを設定
# Parameters
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
-[[UDR>Azureの仮想ネットワーク#e8a3a7cc]]の設定~
以下のパートのスクリプトを実行
# UDR でルートを塞ぐ
※ 前述の既定の[[UDR>Azureの仮想ネットワーク#e8a3a7cc]](A...
-[[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環境ということで、コ...
しかし、踏み台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%\k...
・または、フィアルへのパスを通す。
...
---または、~
・下記 URL からダウンロードし~
https://storage.googleapis.com/kubernetes-release/release...
・%HOMEPATH% 下へコピー~
https://v1-16.docs.kubernetes.io/ja/docs/tasks/tools/inst...
https://v1-16.docs.kubernetes.io/docs/tasks/tools/install...
--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]](A...
-NICの作成~
以下のパートのスクリプトを実行
# NIC を先に作成(IP アドレスを確定させる)
※ こちらは、[[Azure Private Link]]を構成しないので、[[ILB...
-[[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-...
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
--2. kubectl インストール~
https://v1-16.docs.kubernetes.io/ja/docs/tasks/tools/inst...
sudo apt-get update && sudo apt-get install -y apt-trans...
curl -s https://packages.cloud.google.com/apt/doc/apt-ke...
echo "deb https://apt.kubernetes.io/ kubernetes-xenial m...
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-certifica...
curl -fsSL https://download.docker.com/linux/ubuntu/gpg ...
sudo add-apt-repository "deb [arch=amd64] https://downlo...
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-har...
[[オンプレ模倣環境の作成>#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_NA...
az network bastion create --name $BASTION_NAME --public-...
>※ 結構、時間がかかる。
-利用方法は、VMの接続メニューに、RDP、SSHに加え、~
Bastionが追加されているのでコレを選択して利用する。
**[[AKS クラスタの作成と設定>https://github.com/tsubasaxZ...
***パラメタの設定 [#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クラスタ作成・操作に必要な権限#db6b9d...
***AKS の設定 [#t3e95a42]
-[[ACR>Azure Container Registry]] との接続~
以下のパートのスクリプトを実行
# Configure ACR for connecting from AKS
※ コレは、[[ココ>Azure サービス プリンシパル#e9e4c0d9]]の...
※ 2~3分かかるらしい。
-Azure Monitor の有効化~
以下のパートのスクリプトを実行
# Azure Monitor for AKS 有効化
...
※ 数分、時間がかかる。
-診断設定の有効化~
以下のパートのスクリプトを実行
# AKS 診断設定の有効化
...
※ 数分、時間がかかる。
**[[アプリのビルドとデプロイ>https://github.com/tsubasaxZ...
***kubectl/kubeconfig の準備 [#jc45f7bc]
-uservm1 > mgmt-win-vm1, mgmt-linux-vm1 へのログイン
-~/.kube/config ファイルの取得とコピー(非 admin, admin ...
--[[6-a. mgmt-win-vm1 上で作業>https://github.com/tsubasa...
--[[6-b. mgmt-linux-vm1 上で作業>https://github.com/tsuba...
※ .kubeに、configとadmin-configファイルが作成される。~
既定では、configが利用される(必要に応じて切り替える)。
***コンテナ・イメージの作成 [#j8b4ecf1]
[[AKS_TechnicalReference_v0.14(ppt).zip>https://nakama.bl...
構築サンプルアプリ.zipを mgmt-windows-vm1 に持ち込んで作...
-ビルドできるように[[Azure Firewall]]に穴をあける。
--[[6-d. Cloud Shell 上で実施>https://github.com/tsubasax...
-ファイルを mgmt-linux-vm1 に scp で転送し、~
mgmt-linux-vm1 でコンテナをビルドし、作成したコンテナ・イ...
コンテナ・レジストリにプッシュ(2 つのバージョンをプッシ...
--[[6-e. mgmt-windows-vm1 上で実施>https://github.com/tsu...
***アプリのデプロイ [#zdb0da67]
YAML ファイルを作成し、kubectl apply を実行し、~
コンテナ・イメージのデプロイ展開を確認する。~
最後に、コンテナ・イメージを切り替える。~
(ダッシュボードの表示も行う)
-[[6-f. アプリの配置>https://github.com/tsubasaxZZZ/aks-h...
※ コンテナ・イメージの~
レジストリ名(先頭)とタグ名(末尾)~
の部分は必要に応じて変更する。
※ DBアクセスは動かなくても確認はできる。~
DBアクセスをテストするなら、[[コチラで言及されているSQL...
手順としては、(...後でどこかに書くか)
**[[オンプレ模倣環境から AKS アプリへの接続>https://githu...
***AKS ILB に対する Private Link Service の作成 [#u85b7a55]
以下のパートのスクリプトを実行
# AKS ILB に対する Private Link Service の作成
***AKS ILB への Private Endpoint の作成 [#g631313b]
以下のパートのスクリプトを実行
# Create Private Endpoint to AKS
**[[インターネットからの接続>https://github.com/tsubasaxZ...
***パラメタの設定 [#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/...
---Resource Manager テンプレートでのメトリック アラートの...
可用性テスト用のテンプレートとメトリック アラート~
https://docs.microsoft.com/ja-jp/azure/azure-monitor/plat...
**[[ノード自動再起動>https://github.com/tsubasaxZZZ/aks-h...
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/a...
***モニタリングツールの確認 [#h4d8334c]
-[[Azure Monitor]] k8s Insights
-k8s ダッシュボード~
live data は実行ノードと直接通信できるところ~
=mgmt-windows-vm1 上からでしか確認できない。
***Pod 操作履歴 [#v72da782]
kubectl rollout history で確認できる。
>kubectl rollout history deployment.v1.apps/web --namesp...
deployment.apps/web
REVISION CHANGE-CAUSE
1 <none>
3 <none>
4 <none>
>kubectl rollout history deployment.v1.apps/web --namesp...
deployment.apps/web with revision #4
Pod Template:
*切り分け [#n60154f3]
-うーん、動かないですね。
-色々、切り分けの戦略を立てよう。
**Javaアプリ [#l3c5f53f]
-そもそもDB作ってないので、初期化でDB接続してコケてたりし...
-もっと簡単な、HTMLを表示するダケのコンテナ・イメージを作...
-それを、*.yamlの
image: ***azrefarc7aksacr.azurecr.io/azrefarc.springboot...
と差し替えたら、良いのでは?と。
-手頃なモノを探していたら、以下を発見。
--docker+Node.js(Express)の最小構成プロジェクトを作成する...
https://qiita.com/ryo-ohnishi/items/b54e649b14b51694ef77
>詳しい手順は[[コチラ>AKSをセキュアに利用する構築デモ(コ...
**Firewall外し [#ta823b80]
-なんとなく、[[Azure Firewall]]が悪さしている気もした。
-実際、
--[[コチラ>AKSをセキュアに利用する構築デモ#fd9723b4]]の様...
--[[Javaアプリ>#l3c5f53f]]を、[[voting-app>Azure Kubernet...
「registry-1.docker.io」を別途、追加したりした。
-と言う事で、以下のように実行~
...と言うのも、プライベートAKSクラスタ作成で、~
「An existing route table has not been associated with No...
Please update the route table association」などと言いよる...
--実行方法
# Create UDR and assign UDR
---Firewallの作成は、通常通り実行する。
# Create Azure Firewall
---ルーティングの変更も、通常通り実行する。~
良く解って無いが、以下が、AKS_VNET全体に適用される模様。
# Create UDR and assign UDR
...
# UDR でルートを塞ぐ
...
---ルールの作成に関しては、[[ガバガバ版>AKSをセキュアに利...
# Create Firewall Rules
...
# Azure Firewall ルールで ... などを許可
...
**保守端末 [#o5cf99dd]
-1つはゴリゴリのWindows開発環境([[Docker Desktop for Wi...
-[[Azure Firewall]]を作っても、ココだけ[[Firewallをガバガ...
-ローカルで、Dockerビルドして、動作確認したモノを、迅速に...
*検討事項 [#p1fe10e0]
最後に
>「コレ以外にも、下も検討が必要です」
と言う話があったが、
>「(疲れたので、)もうエエわ」
と言う感想(暫く休ませて下さい)。
**HTTPS化やWAFの導入 [#l0a54701]
**[[Azure Active Directory]]認証統合 [#gbcd98d1]
-[[AKS Master APIにAzAD認証を統合する。]]
-...その他、アプリの認証の検討も必要...
**[[K8s>Azure Kubernetes Service (AKS)#x4a72daa]]の機能活...
**[[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...
--★CMD用
SET SUBSCRIPTION_NAME=XXXXXXXXX
az account set -s %SUBSCRIPTION_NAME%
FOR /F "usebackq" %i IN (`az account show -s "%SUBSCRIPT...
-★プレフィックス、ロケーション
--★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_S...
DIAG_LA_WS_GUID=$(az monitor log-analytics workspace sho...
DIAG_LA_WS_ID=$(az monitor log-analytics workspace show ...
DIAG_LA_WS_KEY=$(az monitor log-analytics workspace get-...
***★環境構築 [#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をセキュアに利用する構築デモ(コピ...
*参考 [#r7d2f9fc]
**[[テクニカルリファレンス中の...>AKSをセキュアに利用する...
-https://github.com/tsubasaxZZZ/aks-hardway
--https://github.com/tsubasaxZZZ/aks-hardway/blob/master/...
**OSSC > 開発基盤部会 Blog [#g81e9e9e]
-セキュアなプライベートAKS構築が出来たので報告。~
https://www.osscons.jp/jo64zcvfj-537/
----
Tags: [[:クラウド]], [[:コンテナ]], [[:Azure]], [[:AKS]],...
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>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をセキュアに利用する構築デモ(コ...
***...見つけ次第、書く。 [#l2bf54bc]
*構成 [#k241e08b]
**全体構成図 [#hb722c2e]
[[AKS_TechnicalReference_v0.14(ppt).zip>https://nakama.bl...
#ref(無題.png,left,nowrap,全体構成図,60%)
**ネットワーク構成 [#j8e5bc60]
***構成概要 [#g52607bf]
[[コチラ>AKSをセキュアに利用するためのテクニカルリファレ...
-Azure CNI プラグインを利用した分離型 [[VNET>Azureの仮想...
-ARM API はプライベート化しない。
-Master API はプライベート化する。~
([[プライベートAKSクラスタ>Azure Kubernetes Service (AKS...
-実行ノードも既存の[[VNET>Azureの仮想ネットワーク]]に配置...
※ サマリすると
-ARM API以外は、プライベート化し、
-実行ノードの公開は、
--[[Azure Private Endpoint]]経由(イントラ公開)
--DMZ経由(インターネット公開)
となる。
***入力経路 [#rd647b7a]
インバウンド(イングレス
-アプリ
--イントラ公開~
[[Azure Private Endpoint]] → [[ILB(Internal Load Balancer...
--インターネット公開~
[[Azure Application Gateway]] (DMZ) → [[Azure Private End...
-保守アクセス
--イントラ公開~
[[Azure Private Endpoint]] 方式
--インターネット公開~
[[Azure Bastion]] 方式
***出力経路 [#v71f3c20]
アウトバウンド(エグレス
以下の併用
-[[Azure Firewall]]:インターネット・アクセス
-[[Azure Private Endpoint]]:Azureの他のサービスへのアク...
***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureの...
-[[オンプレ模倣環境>#w3d31a84]]
-[[AKS 配置環境>#s8b3bd20]]
**認証・認可 [#taee4d4f]
保守用端末を [[VNET>Azureの仮想ネットワーク]] 内に設置す...
***Azureポータル, Azure CLI (ARM API) [#hccf0a02]
プライベート化しない(既存のアクセス制限機能を想定)
***[[制御プレーン>AKSをセキュアに利用するためのテクニカル...
[[Managed ID 方式>AKSクラスタ作成・操作に必要な権限#i3b0b...
***ダッシュボード, Kubernetes CLI (Master API) [#z56fa98b]
-クラスタ管理者の[[kube config>AKSをセキュアに利用するた...
-必要なら、追加でIPアドレス制限を想定
***AKSユーザ・アプリからのリソース・アクセス [#f379ef3c]
[[Secret機能>AKSユーザ・アプリからのリソース・アクセス#b3...
**基盤保守 [#g4364425]
***日次パッチ [#g4bcd917]
-ノード VM は日次パッチ適用(既定で自動)
-Kured をインストールして自動再起動させる。
***オンデマンド [#g297ed91]
必要に応じて
-[[制御プレーン>AKSをセキュアに利用するためのテクニカルリ...
-[[ノードプール>AKSをセキュアに利用するためのテクニカルリ...
バージョンアップを手動で実施。
**開発~デプロイ [#wfd95a03]
[[VNET>Azureの仮想ネットワーク]] 内に本番用コンテナ・レジ...
([[ACR(コンテナ・レジストリ)をプライベート化する。>Azu...
*手順 [#o59fa2c7]
https://github.com/tsubasaxZZZ/aks-hardway/blob/master/de...
**[[準備作業>https://github.com/tsubasaxZZZ/aks-hardway/b...
***[[サブスクリプションの選択>https://github.com/tsubasax...
※ 必要に応じて、サブスクリプションの選択を行う。
※ 「SUBSCRIPTION_NAMEは各自で書き換え」とのこと。
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
***[[パラメタの設定>https://github.com/tsubasaxZZZ/aks-ha...
※ 「NAME_PREFIXは各自で書き換え」とのこと。
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
***[[Azure CLI拡張機能のインストール>https://github.com/t...
***[[AKS プレビュー機能のインストール>https://github.com/...
※ 「時間かかるので注意(20 分ぐらい)」とのこと。
**[[共通準備>https://github.com/tsubasaxZZZ/aks-hardway/b...
***パラメタの設定 [#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]]・ストレージの...
以下のパートのスクリプトを実行
# Create Diagnostics Storage
※ インターネット・アクセス禁止オプションあり。
***[[Log Analytics]] & [[Application Insights]] の作成 [#...
以下のパートのスクリプトを実行
# Create Log Analytics & AppInsights
※ [[Log Analytics]] は 90日ログ保持オプションあり。
***サブスクリプションのアクティビティ・ログの有効化 [#we7...
以下のパートのスクリプトを実行
# Enable Subscription Activity Logging
※ だが、現時点では UI から実施とのこと(動画も参考になる...
-参考
--Azure Monitor での Azure アクティビティ ログの収集と分...
https://docs.microsoft.com/ja-jp/azure/azure-monitor/plat...
**[[オンプレ模倣環境の作成>https://github.com/tsubasaxZZZ...
-[[VNET>Azureの仮想ネットワーク]]にVMを新設して、そこをオ...
-[[全体構成図>#hb722c2e]]には「OA環境サブスクリプション」...
あるが、別サブスクリプションでなくても良い。
-多分、後述の、[[Bastionの作成>#a74a73b8]]手順で代替できる~
(が、Private Link、Private Endpoint等を試したいのでコチ...
-あと、[[Azure Private Endpoint]] 引き込みを行うので、~
正確には、「[[オンプレ延伸>FgCF (Financial-grade Cloud Fu...
***パラメタの設定 [#e47ddc2e]
以下のパートのスクリプトを実行して、パラメタを設定
# Parameters
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureの...
以下のパートのスクリプトを実行
# 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上に...
※ オンプレの模倣ということで、Windows 10 を選択している?
※ Visual Studio のアクティブ・サブスクライバでない場合は、~
Windows 10 ではなく Windows Server 2019 を利用(ライ...
既定のスクリプトは、Windows 10になっているので、必要...
※ 最後に「az vm open-port」でRDPポートを開けるオマケが付...
**[[AKS 配置環境の準備>https://github.com/tsubasaxZZZ/aks...
***パラメタの設定 [#r2212fa2]
以下のパートのスクリプトを実行して、パラメタを設定
# Variables
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
***[[VNET>Azureの仮想ネットワーク]]・[[サブネット>Azureの...
以下のパートのスクリプトを実行
#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をセキュアに利用するためのテクニカル...
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をセキュアに利用するためのテクニカル...
/16でサブネッティングしているとの事。
>※ しれっと、VNETの「az monitor diagnostic-settings creat...
***周辺サービスの作成と引き込み [#nf0b7bbb]
-[[ACR>Azure Container Registry]] の作成と [[Azure Privat...
--[[ACR>Azure Container Registry]] の作成~
以下のパートのスクリプトを実行
# Create ACR
※ [[Azure Private Endpoint]] 引き込みをサポートするPremiu...
※ インターネットアクセス禁止、[[Subscription Activity Log...
--[[Azure Private Endpoint]] 引き込み~
以下のパートのスクリプトを実行
# Create PrivateLink to ACR
...
# azrefarcacr... の A レコード作成
※ ココのスクリプトはPreviewなので変更の可能性アリとのこと...
※ 動画ではポータルから行っていると見せかけ、確定ボタン押...
-[[Azure SQL Database]] 作成と [[Azure Private Endpoint]]...
--[[Azure SQL Database]] 作成~
...
※ よくよく見ると、DBを作ってない(コロナ"COVID-19"の影響...
最終的には、以下の接続文字列でアクセス可能な[[SQL Serve...
jdbc:sqlserver://azrefarc.database.windows.net:1433;dat...
--[[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]]として、...
インターネット(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]](A...
※ その他、[[MCR>AKSをセキュアに利用するためのテクニカルリ...
--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 ...
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-har...
***管理マシン(Windows)の作成 [#t74fd3eb]
オンプレから接続する踏み台VM相当。
-パラメタの設定~
以下のパートのスクリプトを実行して、パラメタを設定
# Parameters
※ 再開の際は、再実行([[テキスト・ファイル>#ta06f8f8]]へ...
-[[UDR>Azureの仮想ネットワーク#e8a3a7cc]]の設定~
以下のパートのスクリプトを実行
# UDR でルートを塞ぐ
※ 前述の既定の[[UDR>Azureの仮想ネットワーク#e8a3a7cc]](A...
-[[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環境ということで、コ...
しかし、踏み台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%\k...
・または、フィアルへのパスを通す。
...
---または、~
・下記 URL からダウンロードし~
https://storage.googleapis.com/kubernetes-release/release...
・%HOMEPATH% 下へコピー~
https://v1-16.docs.kubernetes.io/ja/docs/tasks/tools/inst...
https://v1-16.docs.kubernetes.io/docs/tasks/tools/install...
--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]](A...
-NICの作成~
以下のパートのスクリプトを実行
# NIC を先に作成(IP アドレスを確定させる)
※ こちらは、[[Azure Private Link]]を構成しないので、[[ILB...
-[[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-...
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
--2. kubectl インストール~
https://v1-16.docs.kubernetes.io/ja/docs/tasks/tools/inst...
sudo apt-get update && sudo apt-get install -y apt-trans...
curl -s https://packages.cloud.google.com/apt/doc/apt-ke...
echo "deb https://apt.kubernetes.io/ kubernetes-xenial m...
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-certifica...
curl -fsSL https://download.docker.com/linux/ubuntu/gpg ...
sudo add-apt-repository "deb [arch=amd64] https://downlo...
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-har...
[[オンプレ模倣環境の作成>#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_NA...
az network bastion create --name $BASTION_NAME --public-...
>※ 結構、時間がかかる。
-利用方法は、VMの接続メニューに、RDP、SSHに加え、~
Bastionが追加されているのでコレを選択して利用する。
**[[AKS クラスタの作成と設定>https://github.com/tsubasaxZ...
***パラメタの設定 [#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クラスタ作成・操作に必要な権限#db6b9d...
***AKS の設定 [#t3e95a42]
-[[ACR>Azure Container Registry]] との接続~
以下のパートのスクリプトを実行
# Configure ACR for connecting from AKS
※ コレは、[[ココ>Azure サービス プリンシパル#e9e4c0d9]]の...
※ 2~3分かかるらしい。
-Azure Monitor の有効化~
以下のパートのスクリプトを実行
# Azure Monitor for AKS 有効化
...
※ 数分、時間がかかる。
-診断設定の有効化~
以下のパートのスクリプトを実行
# AKS 診断設定の有効化
...
※ 数分、時間がかかる。
**[[アプリのビルドとデプロイ>https://github.com/tsubasaxZ...
***kubectl/kubeconfig の準備 [#jc45f7bc]
-uservm1 > mgmt-win-vm1, mgmt-linux-vm1 へのログイン
-~/.kube/config ファイルの取得とコピー(非 admin, admin ...
--[[6-a. mgmt-win-vm1 上で作業>https://github.com/tsubasa...
--[[6-b. mgmt-linux-vm1 上で作業>https://github.com/tsuba...
※ .kubeに、configとadmin-configファイルが作成される。~
既定では、configが利用される(必要に応じて切り替える)。
***コンテナ・イメージの作成 [#j8b4ecf1]
[[AKS_TechnicalReference_v0.14(ppt).zip>https://nakama.bl...
構築サンプルアプリ.zipを mgmt-windows-vm1 に持ち込んで作...
-ビルドできるように[[Azure Firewall]]に穴をあける。
--[[6-d. Cloud Shell 上で実施>https://github.com/tsubasax...
-ファイルを mgmt-linux-vm1 に scp で転送し、~
mgmt-linux-vm1 でコンテナをビルドし、作成したコンテナ・イ...
コンテナ・レジストリにプッシュ(2 つのバージョンをプッシ...
--[[6-e. mgmt-windows-vm1 上で実施>https://github.com/tsu...
***アプリのデプロイ [#zdb0da67]
YAML ファイルを作成し、kubectl apply を実行し、~
コンテナ・イメージのデプロイ展開を確認する。~
最後に、コンテナ・イメージを切り替える。~
(ダッシュボードの表示も行う)
-[[6-f. アプリの配置>https://github.com/tsubasaxZZZ/aks-h...
※ コンテナ・イメージの~
レジストリ名(先頭)とタグ名(末尾)~
の部分は必要に応じて変更する。
※ DBアクセスは動かなくても確認はできる。~
DBアクセスをテストするなら、[[コチラで言及されているSQL...
手順としては、(...後でどこかに書くか)
**[[オンプレ模倣環境から AKS アプリへの接続>https://githu...
***AKS ILB に対する Private Link Service の作成 [#u85b7a55]
以下のパートのスクリプトを実行
# AKS ILB に対する Private Link Service の作成
***AKS ILB への Private Endpoint の作成 [#g631313b]
以下のパートのスクリプトを実行
# Create Private Endpoint to AKS
**[[インターネットからの接続>https://github.com/tsubasaxZ...
***パラメタの設定 [#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/...
---Resource Manager テンプレートでのメトリック アラートの...
可用性テスト用のテンプレートとメトリック アラート~
https://docs.microsoft.com/ja-jp/azure/azure-monitor/plat...
**[[ノード自動再起動>https://github.com/tsubasaxZZZ/aks-h...
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/a...
***モニタリングツールの確認 [#h4d8334c]
-[[Azure Monitor]] k8s Insights
-k8s ダッシュボード~
live data は実行ノードと直接通信できるところ~
=mgmt-windows-vm1 上からでしか確認できない。
***Pod 操作履歴 [#v72da782]
kubectl rollout history で確認できる。
>kubectl rollout history deployment.v1.apps/web --namesp...
deployment.apps/web
REVISION CHANGE-CAUSE
1 <none>
3 <none>
4 <none>
>kubectl rollout history deployment.v1.apps/web --namesp...
deployment.apps/web with revision #4
Pod Template:
*切り分け [#n60154f3]
-うーん、動かないですね。
-色々、切り分けの戦略を立てよう。
**Javaアプリ [#l3c5f53f]
-そもそもDB作ってないので、初期化でDB接続してコケてたりし...
-もっと簡単な、HTMLを表示するダケのコンテナ・イメージを作...
-それを、*.yamlの
image: ***azrefarc7aksacr.azurecr.io/azrefarc.springboot...
と差し替えたら、良いのでは?と。
-手頃なモノを探していたら、以下を発見。
--docker+Node.js(Express)の最小構成プロジェクトを作成する...
https://qiita.com/ryo-ohnishi/items/b54e649b14b51694ef77
>詳しい手順は[[コチラ>AKSをセキュアに利用する構築デモ(コ...
**Firewall外し [#ta823b80]
-なんとなく、[[Azure Firewall]]が悪さしている気もした。
-実際、
--[[コチラ>AKSをセキュアに利用する構築デモ#fd9723b4]]の様...
--[[Javaアプリ>#l3c5f53f]]を、[[voting-app>Azure Kubernet...
「registry-1.docker.io」を別途、追加したりした。
-と言う事で、以下のように実行~
...と言うのも、プライベートAKSクラスタ作成で、~
「An existing route table has not been associated with No...
Please update the route table association」などと言いよる...
--実行方法
# Create UDR and assign UDR
---Firewallの作成は、通常通り実行する。
# Create Azure Firewall
---ルーティングの変更も、通常通り実行する。~
良く解って無いが、以下が、AKS_VNET全体に適用される模様。
# Create UDR and assign UDR
...
# UDR でルートを塞ぐ
...
---ルールの作成に関しては、[[ガバガバ版>AKSをセキュアに利...
# Create Firewall Rules
...
# Azure Firewall ルールで ... などを許可
...
**保守端末 [#o5cf99dd]
-1つはゴリゴリのWindows開発環境([[Docker Desktop for Wi...
-[[Azure Firewall]]を作っても、ココだけ[[Firewallをガバガ...
-ローカルで、Dockerビルドして、動作確認したモノを、迅速に...
*検討事項 [#p1fe10e0]
最後に
>「コレ以外にも、下も検討が必要です」
と言う話があったが、
>「(疲れたので、)もうエエわ」
と言う感想(暫く休ませて下さい)。
**HTTPS化やWAFの導入 [#l0a54701]
**[[Azure Active Directory]]認証統合 [#gbcd98d1]
-[[AKS Master APIにAzAD認証を統合する。]]
-...その他、アプリの認証の検討も必要...
**[[K8s>Azure Kubernetes Service (AKS)#x4a72daa]]の機能活...
**[[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...
--★CMD用
SET SUBSCRIPTION_NAME=XXXXXXXXX
az account set -s %SUBSCRIPTION_NAME%
FOR /F "usebackq" %i IN (`az account show -s "%SUBSCRIPT...
-★プレフィックス、ロケーション
--★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_S...
DIAG_LA_WS_GUID=$(az monitor log-analytics workspace sho...
DIAG_LA_WS_ID=$(az monitor log-analytics workspace show ...
DIAG_LA_WS_KEY=$(az monitor log-analytics workspace get-...
***★環境構築 [#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をセキュアに利用する構築デモ(コピ...
*参考 [#r7d2f9fc]
**[[テクニカルリファレンス中の...>AKSをセキュアに利用する...
-https://github.com/tsubasaxZZZ/aks-hardway
--https://github.com/tsubasaxZZZ/aks-hardway/blob/master/...
**OSSC > 開発基盤部会 Blog [#g81e9e9e]
-セキュアなプライベートAKS構築が出来たので報告。~
https://www.osscons.jp/jo64zcvfj-537/
----
Tags: [[:クラウド]], [[:コンテナ]], [[:Azure]], [[:AKS]],...
ページ名: