AWS セッションマネージャーとは?
AWSのセッションマネージャーとは、ブラウザ上からEC2インスタンス、オンプレミスインスタンス、および仮想マシンを管理できる機能です。
つまり、従来のようにインバウンドポートを開く、踏み台ホストを維持する、SSHキーを管理することなどなく監査可能なインスタンスを安全に管理することができます。
また、セッションマネージャーを使うと、エンドユーザーに簡単なマネージドインスタンスへのクロスプラットフォームアクセスをワンクリックで提供しながら、インスタンスへの制御されたアクセス、セキュリティプラクティス、監査可能なログが要求される企業ポリシーにも準拠することができます。
セッションマネージャーの特徴は主に以下の通り
それでは、セッションマネージャーの特徴の一部をご紹介しましょう。
ごく一部をかいつまんで説明していきますが、セッションマネージャーに興味がある方は是非ご覧ください。
WindowsサーバーとLinuxインスタンスの両方をサポート
セッションマネージャーを使用すると、EC2インスタンスとオンプレミスインスタンス、そして仮想マシンへの接続を安全に確立できます。
サポートされているオペレーティングシステムは、Linuxはすべてのバージョンで、WindowsはWindows Server 2008から2019までとなっています。
コンソール・CLI・SDKのセッションマネージャー機能へのアクセス
以下の方法でセッションマネージャーを使用できます。
まず、AWS Systems Managerコンソールには、すべてのセッションマネージャー機能へのアクセスが含まれています。
次に、Amazon EC2コンソールは、セッションアクセス許可を付与されているエンドユーザーがEC2インスタンスに接続できるようにします。
そして、AWS CLIには、エンドユーザーに向けたセッションマネージャー機能へのアクセスが含まれます。
最後に、Session Manager SDKは、アプリケーションデベロッパーがフロントエンドのアプリケーションを構築できるようにするためのサンプルコードとライブラリとで構成されています。
IAMアクセスコントロール
IAMポリシーを使用し、メンバーがそれぞれどのインスタンスにアクセスができるか、組織のどのメンバーがインスタンスに対してのセッションを開始するかを割り当てることができます。
また、一時的なインスタンスへのアクセス権を提供することもできます。
たとえば、オンコールエンジニア(あるいはグループ)に、ローテーションの期間に限定して本稼働サーバーへのアクセス権を付与する場合です。
ログの記録と監査機能のサポート
AWSの他のサービスと統合することで、AWSアカウントのセッション履歴を監査し、ログに記録をするためのオプションを提供します。
接続の詳細レポートは、過去30日間にインスタンスに行われたものが生成できます。
また、Amazon SNS通知など、アカウントのセッションアクティビティの通知も生成できます。
シェルプロファイルの設定が可能
セッションマネージャーでは、セッションの中でプリファレンスを設定するためのオプションがあります。
カスタマイズ可能なこれらのプロファイルを使用すると、環境変数、作業ディレクトリ、シェルの設定、セッション開始時の複数コマンドの実行など、セッションの中の設定を自由にカスタマイズすることができます。
顧客のキーデータ暗号化サポート
S3のバケットに送信する、あるいはCloudWatch Logsロググループにストリーミングをするセッションデータログの暗号化ができるようにセッションマネージャーを設定できます。
さらに、セッション中に、クライアント側のマシンとインスタンス間で送信されるデータを暗号化するように設定することも可能です。
セッションマネージャーに適しているユーザーは?
セッションマネージャーに適しているユーザーは以下のような方です。
最初は、監査とセキュリティの体制を強化し、さらに運用時のオーバーヘッドを削減しインバウンドのインタンスアクセスを削減するためにインスタンスへのアクセス制御を一元化したいAWSユーザーです。
次に、インスタンスのインバウンドポートのクローズ、インスタンスへのアクセスとアクティビティの監視と追跡、そしてパブリックなIPアドレスを持たないインスタンスへの接続の有効化をしたい情報セキュリティの専門家です。
そして、単一の場所からのアクセス権を付与あるいは取り消しをしたり、WindowsとLinuxのインスタンス両方のユーザーに1つのソリューションを提供したい管理者です。
最後に、SSHキーを提供しないで、ブラウザあるいはAWS CLIからインスタンスにワンクリックで接続したいエンドユーザーも適していると言えるでしょう。
AWS セッションマネージャーのメリット
AWSのセッションマネージャーには、上記にご紹介した以外にも以下のようなメリットがあります。
当てはまる方も当てはまらない方も、興味がありましたら是非参考にしてみてください。
IAMポリシーを使った一元的なインスタンスへのアクセス制御
管理者がインスタンスへのアクセス許可および取り消しをする場所が1か所だけとなります。
そのため、AWS Identity and Access Management (IAM) ポリシーを使用して、セッションマネージャーを使用する組織内のユーザーひとりひとりやグループ、およびアクセスできるインスタンスを制御できます。
インバウンドポートを開いたり踏み台ホストやSSHキーを管理する必要がなくなる
インバウンドSSHポートとリモートパワーシェルポートを開いたままにしておくと、エンティティが許可されていないコマンドや、悪意のあるコマンド等をインスタンス上で実行するリスクが激増してしまいます。
セッションマネージャーでは、これらのポートを閉じることで、SSHキーと証明書、踏み台ホスト、およびジャンプボックス管理からユーザーを開放し、セキリュティの体制を向上させることができます。
コンソールやCLIからワンクリックでインスタンスへアクセス
AWS システムマネージャーコンソール、あるいはAmazon EC2コンソールを使用する時に、ワンクリックでセッションの開始ができます。
AWS CLIを使ってコマンドを一つ、あるいは一連のコマンドを実行するためのセッションを開始することもできます。
インスタンスへのアクセスの許可は、SSHキー等の仕組みではなく IAMポリシーによって提供されるため、接続時間を大幅に短縮することが可能です。
ポートの転送
リモートインスタンス内での任意のポートを、クライアント側のローカルポートにリダイレクトします。
その後にローカルポートに接続をして、インスタンス内で実行されているサーバーアプリケーションにアクセスすることができます。
クロスプラットフォームのサポート(WindowsおよびLinux)
セッションマネージャーは、WindowsとLinuxの両方にサポートを提供いたします。
たとえば、LinuxのインスタンスにはSSHクライアントを使用して、Windows ServerのインスタンスではRDP接続を使用するというようなことは必要なくなります。
ログの記録と監査セッションアクティビティ
セキュリティ上の要件を満たすため、あるいは組織内の運用上でインスタンスに対して行われた接続と、そのインスタンス上で実行されたコマンドの記録を管理者に提供することができます。
セッションアクティビティを組織内のユーザーが開始あるいは終了すると、その都度通知を受け取ることも可能です。
以下のAWSサービスとの統合によってログ記録と監査機能が提供されます。
AWS CloudTrail
AWS CloudTrail は、AWSアカウントによって作成されたセッションマネージャーAPIコールの情報をキャプチャして、指定したS3バケットに保存されているログファイルに書き込みを行います。
アカウントのすべてのCloudTrailログに対して1つのバケットを使用します。
Amazon Simple Storage Service
セッションログデータを、監査のために選択したS3バケットに保存できます。
AWS Key Management Service (AWS KMS) キーを使用した暗号化の有無にかかわらず、ログデータをS3バケットに送信できます。
Amazon CloudWatch Logs
Logsを使うと、いろいろなAWSのサービスのログファイルの監視、保存、およびアクセスできます。
セッションログデータを監査するために、CloudWatch Logsロググループへ送信することができます。
AWS KMSキーを使用したAWS KMS暗号化の有無にかかわらず、ログデータをロググループに送信できます。
Amazon イベントブリッジ と Amazon シンプルノティファケーションサービス
イベントブリッジでは、指定したAWSのリソースへの変更発生を検出が可能となるルールを設定することができます。
組織内のユーザーがセッションを開始あるいは停止をしたタイミングを検出して、そのイベントに関する通知をAmazon SNS経由で受信するルールを作成できます。
セッションマネージャーを活用して効率化を図りましょう
いかがでしたでしょうか。
ざっとですが、特徴とメリットを説明してきました。
ぜひセッションマネージャーを利用して効率アップとセキュリティ強化を実現してみてください。]]>