Amazon WorkSpacesにセキュアで快適な端末環境を構築するお話

はじめに

はじめまして、SREチームのうえちゃんです。

ビットバンクではSREとして、金融機関として相応しいセキュアな端末環境を維持しながらも、
スタートアップIT企業として高い開発効率を実現するための仕組み化を推進するための
プロジェクトを担当しています。

さて、顧客データなどを取り扱う環境が、開発などの作業用PCとは隔離されていることは一般的です。

みなさまご存じの通り、ビットバンクではAWSのさまざまなサービスを活用していますが、
今回もご多分に漏れずAWSのサービスの一つである、Amazon WorkSpaces(以下、WorkSpaces)を使用します。

今回はWorkSpacesの概要と、ビットバンクでWorkSpacesの環境を構築する上で選択したオプション
についてお話します。

WorkSpacesとは

まずはじめに、WorkSpacesとはなんぞやというところですが、こちらです。
公式サイト曰く、

Amazon WorkSpaces はマネージド型で、セキュアなクラウドベースのデスクトップサービスです。

とあります。
一つ一つ掻い摘んでいきましょう。

  • マネージド型
    • つまり自分でWindows Updateなどのメンテナンスをしなくて良い
  • セキュア
    • クリップボードの機能を制限したり、管理者権限を制限可能です
  • クラウドベース
    • インターネット越しで使えるということですね
  • デスクトップサービス
    • 黒い画面だけじゃなく、GUIが使えるということです

お、なんかかっこいい響きですね。

Directory Serviceと接続する

WorkSpacesを使うにはAWSのアカウント管理サービスである、AWS Directory Serviceを構築する必要があります。

次の3つのオプションが選択可能です。

  • AWS Managed Microsoft AD
    • マネージド型のActive Directory
    • グループポリシーが一部利用可能
  • Active Directory Connector
    • オンプレミスやEC2上に構築したWindows Serverに接続するためのコネクター
  • Simple Active Directory
    • ADとついているが、実態はLDAP

新規に構築する場合、Microsoft ADを使うと良いでしょう。
オンプレミスのADと接続するには、AD Connectorを使用します。
今回は既存のADと接続したかったので、AD Connectorを選択しました。

なお、本番環境へ接続する環境には、ADのIP/パスワード認証に加えOneLoginと連携した多要素認証、
更にはクライアント証明書を利用して利用端末の認証を実現しています。

OSはLinux

WorkSpacesで利用可能なOSには、

  • Windows Server
  • Amazon Linux

の2種類があります。

今回は、開発効率の観点からLinuxを選択しました。
弊社ではエンジニアにMacやLinuxデスクトップPCを支給しており、エンジニアはUNIX系のOSに慣れています。

Linux WorkSpaces

WebStormを入れる

開発者にはそれぞれ好みのIDEがありますよね。
キーボードだけで操作できる利便性から、JetBrains製品を愛用している方も多いかと思います。
私のMacでも、WebStormが活躍していました。

通常、CentOSの場合にはEPELを入れてSnappyを入れれば簡単に入りますが、Amazon Linuxの場合には一工夫必要でした。

以下、簡単に導入する手順です。

  1. Snappyをダウンロード

  2. Snappyをインストール

# yum install snap-confine-2.36.3-0.amzn2.x86_64.rpm snapd-2.36.3-0.amzn2.x86_64.rpm
  1. snapd.socketを有効化
# systemctl enable --now snapd.socket
  1. シンボリックリンクを作成
# ln -s /var/lib/snapd/snap /snap
  1. ターミナルをいったん終了&再起動

  2. WebStormインストール

# snap install webstorm --classic
  1. Linuxを再起動

sudoできるアカウントの一時払い出し

勝手に設定を変更されないよう、ローカル管理者は無効化しています。
ただ、これだと社内のシステム管理者がたいへんですので、ソフトウェアインストール要望が出た際には、
申請制で一時的なsudo権限(Domain Adminsグループ所属ユーザー)の払い出しを行っています。

ただし、これはWindows Server上に構築したADと接続したときのみ有効です。
MicrosoftADを選択した場合、AWS Delegated Administratorsが管理者権限グループとなります。

sudoする手順は以下です。

  1. ADのDomain Adminsグループにユーザーを作成し、そのユーザーにsuする
  2. sudoする

実際にこういった環境で運用するには、Windows Serverの運用知見とLinuxサーバー(CentOSなどRed Hat系)の運用知見の両方が求められます。

最後に

弊社ではAWSが好きなSREエンジニアを絶賛募集中です。
インフラエンジニアからステップアップしたい方でも大歓迎です。
興味のある方はぜひチェックしてみてください。

ビットバンク株式会社 | 採用サイト

expand_less