Amazon Web Services ブログ

最新 – AWS Systems Manager セッションマネージャーで EC2 インスタンスへのシェルアクセスを実現

今は企業の IT 管理者となるのに、非常に興味深い時代です。その一方で、開発者たちは素晴らしい未来について話題にし、それを実行しています。そこではインフラストラクチャをコード化し、サーバーやその他のリソースをまるで家畜のように取り扱っています。また、一方ではレガシーシステムは依然としてペットとして取り扱い、人の手、もしくは一部制限のある自動化の助けを借りて設定および保守しなければなりません。私が日々やり取りをするお客様は、速いペースで未来へと変革を進めていますが、現状存在する世界と仕事をすることも避けられません。たとえば、時々、自社のサーバーにシェルレベルでアクセスする必要性が生じます。彼らがランウェイプロセスを中断すること、サーバーログを確認すること、設定を細かく調整すること、または一時的なパッチをインストールすることなど、これらを実行する一方で強いセキュリティプロファイルを維持しなくてはなりません。彼らは Bastion のホストを稼動させるうえで生じる手間と、インスタンス上の SSH ポートを開く際に起こるリスクを軽減したいと考えています。

私たちは既に、AWS Systems Manager ランコマンドを使い、シェルレベルのアクセスの必要性に既に対処しています。この AWS の能力により、管理者は EC2 インスタンスに安全にアクセスできるようになります。この製品により彼らはコマンドの文書を作成し、希望する EC2 インスタンスのセットに対し、それらを実行できるようになります。また、その両方で Linux と Microsoft Windows のサポートが確保されます。コマンドは非同期的に実行され、出力はレビュー用に取得されます。

新しいセッションマネージャー
本日、シェルレベルアクセスに新しいオプションを追加します。新しいセッションマネージャーにより AWS Systems Manager がこれまで以上にパワフルになります。これからはブラウザベースの新しいインタラクティブシェルとコマンドラインインターフェース (CLI) を使用し、Windows と Linux のインスタンスを管理できるようになります。サービスの詳細は以下のとおりです。

セキュアなアクセス – インスタンス上でユーザーアカウント、パスワード、または SSH キーを手でセットアップする必要はなく、インバウンドポートを開く必要もありません。セッションマネージャーはインスタンス上で開始される暗号化されたトンネル内で SSM エージェント経由でインスタンスと通信を行い、踏み台となるホストを必要としません。

アクセスコントロール – IAM ポリシーとユーザーを使用してインスタンスへのアクセスをコントロールし、SSH キーを配布する必要はありません。IAM の日付条件演算子を使用して希望の時間へのアクセスやメンテナンスの時間枠に制限を設けることができます。

監査能力 – コマンドと応答は Amazon CloudWatch と S3 バケットにログ記録可能です。新しいセッションが始まった時点で SNS 通知を受け取るよう手配することができます。

相互作用性 – コマンドは完全に互換性のある bash (Linux) または PowerShell (Windows) 環境で同期的に実行されます。

プログラミングとスクリプティング – このあとご紹介するコンソールアクセスに加えて、コマンドラインから (aws ssm ...) またはセッションマネージャー API からセッションを開始することもできます。

EC2 インスタンス上で実行する SSM Agent はセッションマネージャーのパブリックエンドポイントに接続できる必要があります。また、セッションマネージャーに接続するために、プライベート VPC (インターネットアクセスまたはパブリック IP なし) でインスタンスが実行できるように、PrivateLink をセットアップすることもできます。

実行中のセッションマネージャー
EC2 インスタンスへのアクセスにセッションマネージャーを使用するためには、SSM Agent の最新バージョン (2.3.12 以降) を実行している必要があります。 インスタンスのインスタンスロールは適切なサービスへのアクセスを許可するポリシーを参照するものでなくてはなりません。独自のものを作成することも、AmazonEC2RoleForSSM を使用することもできます。ここにあるのは私の EC2 インスタンスです (sk1sk2 が Amazon Linux を実行。sk3-winsk4-win が Microsoft Windows を実行):

最初のコマンドを実行する前に、AWS Systems Manager を開き、Preferences (設定) をクリックします。コマンドのログを記録したいので、S3 バケットと CloudWatch ロググループの名前を入力します。値のいずれかまたは両方を入力するときは、インスタンスポリシーでそれらへのアクセスを付与する必要もあります。

これで準備ができました。 Sessions (セッション) をクリックし、アクティブなセッションがないことを確認し、Start session (セッションの開始) をクリックして先に進みます。

Linux インスタンス (sk1) を選択し、Start session (セッションの開始) をもう一度クリックします。

セッションはただちに開始されます。

Windows インスタンスの 1 つでも同じ操作を行えます。

ログシステムは CloudWatch で閲覧できます。

各ストリームには、1 つのセッションの内容が含まれます。

制作中
いつものように、セッションマネージャー用に制作中の追加機能がいくつかあります。いくつかご紹介しましょう。

SSH クライアント – インバウンドポートを開くことなく、セッションマネージャーの上に、SSH セッションを作成できます。

オンプレミスアクセス – セッションマネージャーを介して、オンプレミスインスタンス (SSM Agent を実行する必要があります) にアクセスできるようにする予定です。

今すぐ利用可能です!
セッションマネージャーは追加料金なしで、すべての AWS リージョン (AWS GovCloud を含む) にてご利用いただけます。

Jeff