IBM Cloud Docs
要塞ホスト

要塞ホスト

このデプロイメント・パターンでは、要塞ホストにより、他のサーバーおよびアプリケーションへの外部管理アクセスが許可されます。 これは浮動 IP を介してアクセス可能であり、セキュリティー・グループは、既知の IP アドレスまたは CIDR ブロックから MS RDP ポート TCP 3389 へのアクセスを制限します。 また、浮動 IP により、要塞ホストはインターネットにアクセスできるため、ファイルをダウンロードできます。 別のアクセス手段、つまり Direct Link を使用することもできます。これは、要塞ホストが不要であることを意味します。

本書では、以下を前提としています。

  • 要件に応じて VPC とサブネットを作成しておきます。
  • 浮動 IP が予約されている。
  • セキュリティー・グループを構成しました。
  • SSH 鍵をアップロードしました。

このガイドでは、以下のプロセスを順を追って説明します。

  • 仮想サーバーの注文。
  • サーバーに接続しています。
  • 要塞ホストへの必須ファイルのダウンロード。
  • ダウンロードしたファイルに SQL Server からアクセスできるようにするための SMB 共有の作成。
  • SQL インフラストラクチャーを管理するための統合環境である SQL Server Management Studio (SSMS) をインストールします。
  • ドメインに参加します。 このタスクは、AD タスクが完了するまで開始できません。
  • PowerShell AD モジュールを追加します。
  • PowerShell SQL モジュールを追加します。
  • NTP サーバーを構成します。

仮想サーバーの注文

以下の仕様の仮想サーバーは要塞ホストに適しており、 UI を使用した仮想サーバー・インスタンスの作成 の手順を使用して注文できます。

  • プロファイル: bx2-2x8
  • タイプ: Public
  • OS: WIndows 2019
  • NIC 数量: 1
  • データ・ボリューム: なし

サーバーへの接続

仮想サーバーをデプロイした後、リモートでサーバーにアクセスできるように浮動 IP アドレスを接続する必要があります。 浮動 IP アドレスの追加を参照してください。

Windows 管理者のパスワードにアクセスするには、 Windows インスタンスへの接続 を参照してください。ただし、要約すると、ラップトップから以下のコマンドが使用されます。ここで、instances コマンドは仮想サーバーの < INSTANCE_ID> を返します。

ibmcloud is instances
ibmcloud is instance-initialization-values <INSTANCE_ID> --private-key @~/.ssh/id_rsa

必要なファイルのダウンロード

このデプロイメント・パターンでは、要塞ホストにダウンロードする必要がある以下の製品を使用します。

  • MS SQL Server Developer Edition。 SQL Server 製品 & リソースからダウンロードできます。
  • SQL Server Management Studio (SSMS)。 Download SQL Server Management Studio (SSMS)からダウンロードできます。
  • Diskspd はストレージ・サブシステムのテスト・ツールであり、 DISKSPD 2.0.21aからダウンロードできます。
  • PowerShell は SQL Server インスタンスと対話できますが、モジュールをインストールする必要があります。 このモジュールを非インターネット接続 SQL サーバーにインストールする必要がある場合は、このモジュールをダウンロードしてください。 詳しくは、 SqlServer を参照してください。

Windows Explorer でファイルをダウンロードするのが少し難しく、IE のセキュリティ強化の構成を無効にしたい場合があります。

function Disable-InternetExplorerESC {
    $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"
    $UserKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"
    Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0
    Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0
    Stop-Process -Name Explorer
}
Disable-InternetExplorerESC

SQL Server のダウンロード

SQL Server のダウンロードは、Web フォームを使用するため、対話式にダウンロードする必要があります。 新しくインストールされた Windows Server ごとに、Windows Explorer のセキュリティー設定ではファイルのダウンロードが許可されません。

  1. Internet Explorer の設定ダイアログを開き、「セキュリティ」タブに移動します。

  2. 「カスタム・レベル」ボタンを選択して、設定のリストを開きます。

  3. 「ダウンロード」セクションが表示されるまでスクロールダウンし、「有効化」の前にあるラジオ・ボタンにチェック・マークを付けます。

  4. 設定を保存して Internet Explorer を再始動するには、「OK」を選択します。

  5. これで、ファイルをダウンロードできます。

    ダウンロードしたファイル SQL2019-SSEI-Eval.exe は、Microsoft から実際のインストール・メディアをダウンロードする「ダウンローダー」にすぎません。 このメディアは、ISO または CAB のいずれかです。 この例では、CAB メディアをダウンロードして解凍し、ヘルプ資料 C:\Users\Administrator\Downloads\SQL2019-SSEI-Eval.exe /Helpを参照します。 以下のコマンドを入力して CAB メディアをダウンロードし、解凍します。

    C:\Users\Administrator\Downloads\SQL2019-SSEI-Eval.exe /ACTION=Download MEDIAPATH=C:\Users\Administrator\Downloads\SQL2019 /MEDIATYPE=CAB /QUIET
    C:\Users\Administrator\Downloads\SQL2019\SQLServer2019-x64-ENU.exe /q /x:C:\Users\Administrator\Downloads\SQL2019\Extracted
    

SSMS のダウンロード

以下のコマンドは、SSMS を C: ¥ Users¥ Administrator¥ Downloads にダウンロードします。

$client = new-object System.Net.WebClient
$client.DownloadFile("https://aka.ms/ssmsfullsetup","C:\Users\Administrator\Downloads\SSMS-Setup-ENU.exe")

ディスク・スペアのダウンロード

次のコマンドは、diskspd を C: ¥ Users¥ Administrator¥ Downloads にダウンロードし、zip ファイルを C: ¥ Users¥ Administrator¥ Downloads¥ DiskSpd に展開します。

$client = new-object System.Net.WebClient
$client.DownloadFile("https://github.com/microsoft/diskspd/releases/download/v2.0.21a/DiskSpd.zip","C:\Users\Administrator\Downloads\DiskSpd-2.0.21a.zip")
Expand-Archive -LiteralPath C:\Users\Administrator\Downloads\DiskSpd-2.0.21a.zip -DestinationPath C:\Users\Administrator\Downloads\DiskSpd

PowerShell SQL サーバー・モジュールのダウンロード

インターネット接続されていない SQL Server にモジュールをインストールする場合は、PowerShell プロンプトから以下のコマンドを使用して、モジュールを要塞ホストにダウンロードします。 Save-Module -Name SQLServer -LiteralPath C:\Users\Administrator\Downloads\

SMB 共有の作成

以下の PowerShell コマンドを使用して、以下を実行します。

  • SMB2の状況を確認します。通常、このプロトコルは仮想サーバー・イメージで無効になっています。 無効にした場合は、SMB の動作に必要なため、有効にすることができます。

  • リモート側で共有にアクセスするために、ローカル・ユーザー <smbuser> が作成されます。 必要なパスワードを <password>に挿入します。

  • 共有 C: ¥ Users¥ Administrator¥ Downloads ディレクトリーは共有されます。

    $user = "<smbuser>"
    $password = "<password>"
    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force
    $secpassword = ConvertTo-SecureString $password -AsPlainText -Force
    New-LocalUser $user -Password $secpassword -FullName "Share User" -Description "User for SMB share"
    New-SmbShare -Name "Downloads" -Path "C:\Users\Administrator\Downloads" -ReadAccess $user
    

    セキュリティー・グループがトラフィックを許可している限り、VPC 内のサーバーから共有にアクセスできるようになります。 SMB について詳しくは、 Windows Server での SMB 3 プロトコルを使用したファイル共有の概要を参照してください。

SQL Server Management Studio のインストール

SQL Server Management Studio (SSMS) は、SQL インフラストラクチャーを管理するための統合環境であり、 SQL Server およびデータベースのインスタンスを構成、モニター、および管理するためのツールを提供します。 コマンド・プロンプト・スクリプトを使用して SSMS をインストールします。

start "" /w C:\Users\Administrator\Downloads\SSMS-Setup-ENU.exe /Quiet SSMSInstallRoot=C:\SSMS

SSMS は C:\SSMS\Common7\IDE\Ssms.exeにインストールされます。

ドメインに参加

このタスクは、AD サーバーがインストールされるまで開始しないでください。

要塞ホストの PowerShell プロンプトで、サーバーがドメインに参加できるようにする以下のコマンドを入力します。

  • Get-DnsClientServerAddress は、 IPv4 イーサネット・インターフェースのインターフェース・インデックスをキャプチャーして、DNS を IBM Cloud DNS サーバーから ADDNS サーバーに変更できるようにします。 サーバーがドメイン・コントローラーを見つけることができないため、このステップを実行しないと、 Add-Computer コマンドは失敗します。 Add-Computer -Server は FQDN のみを受け入れます。
  • Add-Computer コマンドは、 <domain> ADDNS サーバーを使用して <ad_server_fqdn> サーバーをドメインに追加してから、変更を有効にするためにサーバーを再始動します。
$dns = "<ADDNS_IP_Address>"
$adserver = "<ad_server_fqdn>"
$domain = "<domain>"
$user = $domain + "\Administrator"
$password = "<password>"
$out=Get-DnsClientServerAddress -InterfaceAlias Ethernet -AddressFamily IPv4 | Select-Object -Property InterfaceIndex
Set-DnsClientServerAddress -InterfaceIndex $out.InterfaceIndex -ServerAddresses ($dns)
$password = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($user, $password)
Add-Computer -DomainName $domain -Server $adserver -Restart -Credential $credential

PowerShell AD モジュールの追加

Windows Server 2019 では、以下の PowerShell コマンドを使用して、オプションで Windows PowerShell 用の Active Directory モジュールをインストールできます。 モジュールを追加することにより、RDP から AD サーバーにアクセスするのではなく、要塞ホストから AD 情報にアクセスできます。

Import-Module ServerManager
Add-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature
Install-Module -Name WindowsCompatibility

PowerShell SQL モジュールの追加

最新バージョンの SQLServer モジュールをインストールするには、インターネットに接続されたデバイスで、PowerShell プロンプト Install-Module -Name SQLServer -Force -AllowClobberから以下のコマンドを使用します。

NTP サーバーの構成

AD ドメイン階層から自動的に時刻を同期するには、以下のコマンドを実行します。

w32tm /config /syncfromflags:domhier /update
net stop w32time
net start w32time
w32tm /query /status