AWSでClient VPNやってみた➀
AWS Client VPN
こんにちは!AWS Client VPNを試してみました!
AWS Client VPNとは?
https://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/what-is.html
AWS リソースやオンプレミスネットワーク内のリソースに安全にアクセスできるようにする、クライアントベースのマネージド VPN サービスです。
クライアント VPN を使用すると、OpenVPN ベースの VPN クライアントを使用して、どこからでもリソースにアクセスできます。
機器購入などの初期費用が不要で且つお手軽に導入することができるため、
「軽い気持ちでとりあえずテレワーク環境を導入してみる」が可能と思いました。
構成
VPN ClientからAWS上にあるWindows ServerへのRDP接続をゴールとします!
Amazon Linux 2へGitインストール
Amazon Linux 2にて、証明書の発行を行います。
そのための準備などを説明していきます。
$ git version
-bash: git: command not found
初期状態ではgitがインストールされておりません。
$ sudo yum update
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
Resolving Dependencies
–> Running transaction check
(snip)
Is this ok [y/d/N]: y
(snip)
Complete!
sudo yum update を実行してyumを最新の状態にする。
$ sudo yum install git
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Resolving Dependencies
–> Running transaction check
(snip)
Is this ok [y/d/N]: y
(snip)
Complete!
sudo yum install git を実行してgitのパッケージをインストールする。
$ git version
git version 2.23.3
git version を実行してgitがインストールされたことを確認する。
EC2(Amazon Linux 2)で証明書の発行を行う
#EC2にSSH接続して、rootに切替
sudo su root
#git からEASY-RSAをインストール
git clone https://github.com/OpenVPN/easy-rsa.git
#ディレクトリ移動
cd easy-rsa/easyrsa3
#PKIを初期化
$ ./easyrsa init-pki
#CAの作成
./easyrsa build-ca nopass
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
途中、上記の表示が出力されましたが、デフォルトで進めましたのでEnterしました。
#サーバ証明書の作成
./easyrsa build-server-full server nopass
「server」という名前のサーバ証明書が作成されます。
#クライアント証明書の作成
./easyrsa build-client-full client1.domain.tld nopass
クライアント証明書が作成されます。
#AWSClientVPN-key_01というディレクトリを作成し、そのディレクトリ内へ先程に
発行した証明書やキーをコピーします。
#現在のディレクトリを確認
$ pwd
/home/ec2-user/easy-rsa/easyrsa3
$
#証明書やキーをコピー
mkdir /tmp/AWSClientVPN-key_01/
cp pki/ca.crt /tmp/AWSClientVPN-key_01/
cp pki/issued/server.crt /tmp/AWSClientVPN-key_01/
cp pki/private/server.key /tmp/AWSClientVPN-key_01/
cp pki/issued/client1.domain.tld.crt /tmp/AWSClientVPN-key_01/
cp pki/private/client1.domain.tld.key /tmp/AWSClientVPN-key_01/
#AWSClientVPN-key_01 ディレクトリへ移動
cd /tmp/AWSClientVPN-key_01/
#コピーされているか確認
$ ls -l
total 28
-rw——- 1 ec2-user ec2-user 1172 Jan 26 13:23 ca.crt
-rw——- 1 ec2-user ec2-user 4460 Jan 26 13:23 client1.domain.tld.crt
-rw——- 1 ec2-user ec2-user 1704 Jan 26 13:23 client1.domain.tld.key
-rw——- 1 ec2-user ec2-user 4552 Jan 26 13:23 server.crt
-rw——- 1 ec2-user ec2-user 1704 Jan 26 13:23 server.key
証明書の発行が完了しました。
証明書をACMへアップロードするための準備
EC2にて発行した証明書をAWS CLIを使用して直接ACMへアップロードします。
先ずは、EC2にACMへのアクセス権限(IAMロール)をアタッチします。
上記にて「ロールの作成」をクリックします。
信頼されたエンティティの種類を選択→「AWSサービス」を選択
ユースケースの選択→「EC2」を選択
上記の二つを選択した状態で「次のステップ:アクセス権限」をクリック
ポリシーのフィルタ→「Certificate」と入力し、
ポリシー名→「AWSCertificateManagerFullAccess」にチェックを付ける。
ポリシーのフィルタ→「ec2full」と入力し、
ポリシー名→「AmazonEC2FullAccess」にチェックを付けて
「次のステップ:タグ」をクリック
「次のステップ:確認」をクリック。
「ロール名」と「ロールの説明」に任意の値を入力し、「ロールの作成」をクリック。
ロールが作成されたことを確認できます。
EC2→インスタンスにて、「アクション」→「セキュリティ」→「IAMロールを変更」を
クリック。
先程作成したIAMロールを選択し、保存をクリック。
IAMロールが適用されていることを確認できます。
続きは次回
証明書とキーの作成を行い、ACMへアップロードする準備を行いました。
次回はAWS CLIを使用してACMへの証明書アップロードを説明していきたいと思います。