Unified Access GatewayをAmazon Web Services上に作成してみよう:(7)AWSの管理操作をPowerShellで行うための準備

桜と菜の花畑(2024/4/7)
市内を流れる川沿いの桜が満開を迎え、桜祭りが開催されていました。
出店も人もたくさん出て、そこかしこでお花見の宴会が開かれ、どこからともなく焼きそばやお好み焼きのにおいがして、さながら縁日のようでした。

本投稿はUAGをAWS上に構築するシリーズの第七回目の記事です。
今回は、UAGをAWSに展開するにあたって必要なPowerShellクライアントの構成をしていきます。
なお、今回も全体像の掲載は割愛しています。

■目次

■PowerShellモジュールのインストール

管理者権限でPowerShellを起動し、Install-Module -Name AWSPowerShell -Forceと入力して、AWS用のPowerShellモジュールをインストールします。

続いて、Install-Pachage 7Zip4PowerShellと入力して、UAGのOVAファイルを展開するための7Zipのモジュールをインストールします。

インストールが終わったら、Get-Packageでインストールしたモジュールが存在することを確認します。


次に、AWSマネジメントコンソール上でアクセスキーを作成します。

■アクセスキーの作成

UAGをAWSにEC2インスタンスとして展開するときはデプロイのスクリプトを実行しますが、その際はAWSにPowerShellで接続できて、操作できる状態である必要があります。
UAGをAzureに展開する場合、ユーザー名/パスワードの認証を行う方式がメーカー公式マニュアルに記載されていますが、AWSはアクセスキーをあらかじめAWSマネジメントコンソールで作成しておいて、アクセス時のクレデンシャル情報として使用するようです。
アクセスキーは、AWSマネジメントコンソールにアクセスするユーザー単位で作成ていますが、そのユーザーが許可された操作であればなんでもできてしまうため、今回のような場合は使い終わったらできるだけ早く消す方がよさそうです(別の操作をしたいときに、再作成すれば事足りるので。。。)。
ちなみにこの記事を書くためのスクショを取得した後、アクセスキーはすぐ消しました。
Identity and Access Managementの画面を開き、左側のメニューからユーザーを選択し、アクセスキーを作成するユーザーを選択します。

ユーザーアカウントの詳細画面で、セキュリティ認証情報のメニューを探してクリックします。

アクセスキーを作成ボタンをクリックします。

「アクセスキーを作成する前に、あなたのやりたいことによってはもっといい代替手段があるよ!」と列挙されます。強い意志を持ってスクロールダウンします。

その他を選択し、次へをクリックしました。(試しにいくつかほかの選択肢を見た感じ、アクセスキーを使わせてくれなさそうだったので。。)

アクセスキーの名称を入力し、アクセスキーを作成をクリックします。

アクセスキーとシークレットが表示されます。コピーアイコンがそれぞれに表示されるので、テキストメモなどに控えます。

控え終わったら、完了をクリックします。

表示しないでコピーだけしたときは、以下のようなメッセージが表示されます。
控えてあれば続行をクリックしてしまって問題ありません。

■アクセスキーをPowerShellで使えるようにする

アクセスキーを取得したら、PowerShellでアクセスキーを使用して、AWSに接続できるように設定します。

まず初めに、Get-ExecutionPolicyコマンドで、PowerShellの実行ポリシーを確認しました。ここがRestrictedになっていたら、AWSのPowerShellモジュールが動作しなかったので。。

Restrictedになっていたら、Set-ExecutionPolicy -ExecutionPolicy Unrestrictedと設定し、一時的にどんなコードでも実行できるように変更しました。(探せばもっといい方法がありそうな気がしますが。。。)。このテストが終わった後、このコマンドの逆(Set-ExecutionPolicy -ExecutionPolicy Restricted)を入力して、一応もとに戻しています。

AWS用のPowerShellモジュールのコマンドが通るようになったら、Get-AWSCredentialと入力して、現在AWSに接続するためのクレデンシャル情報がPowerShellに設定されていないことを確認します。

次にSet-AWSCredential -AccessKey XXXXXXXXX -SecretKey YYYYYYYYY -StoreAs ZZZZZZのようなコマンドを入力して、アクセスキーをPowerShellで利用できるようにセットします。-StoreAsオプションには、作業内容などがわかりやすいような任意の文字列を入れるとよいのかもしれません。

クレデンシャル情報をセットしたら、Get-AWSCredential -ListProfileDetailと入力すると、設定したAWSクレデンシャルプロファイルが確認できます。

最後に、このAWSクレデンシャルプロファイルを現在開いているPowerShellセッションで使用できるようにSet-AWSCredential -ProfileName ZZZZZZと入力します。メーカーマニュアルでは、-StoreAsオプションの指定としてDefaultを指定していますが、なんとなく何に使うクレデンシャルプロファイルなのかをわかりやすくしたかったので、今回はこの操作をしました。

以上で、AWSの管理操作をPowerShellで行うための準備ができました。