【aws system manager】セッションマネージャーの活用法
こんにちは。今回は、awsについて初心者エンジニアに向けて、aws system managerのセッションマネージャーの活用法についてご紹介します。
セッションマネージャーの概要と利点
aws system managerのセッションマネージャーは、awsリソースへの安全で迅速なアクセスを提供するためのマネージドサービスです。セッションマネージャーを使用することで、sshやリモートデスクトップ(rdp)などのプロトコルを使用せずに、awsリソースへのリモートセッションを確立できます。
セッションマネージャーの利点は以下の通りです。
-
セキュアなリモートアクセス: セッションマネージャーは、セッション用のプロキシサーバーを介して通信を行うため、sshやrdpのようなプロトコルを利用しないため、安全性が向上します。
-
インスタンスidベースのアクセス: セッションマネージャーは、インスタンスのidを指定してリモートセッションを確立するため、特定のec2インスタンスに対してのみアクセスすることができます。
-
インフラストラクチャーリソースの集中管理: セッションマネージャーを使用することで、リモートアクセスのためのパブリックipアドレスやセキュリティグループの設定をする必要がなくなります。
これらの利点を活かして、セッションマネージャーを使用した便利な活用法を見ていきましょう。
セッションマネージャーのセキュアなリモートアクセス手法
セッションマネージャーを使用することで、セキュアなリモートアクセスを実現することができます。セッションマネージャーを利用するためには、以下の手順を実行します。
-
iamロールの作成: セッションマネージャーを使用するためには、iamロールの作成が必要です。iamロールには
amazonssmmanagedinstancecore
のポリシーを付与し、ec2インスタンスにロールを割り当てます。 -
セッションマネージャープラグインのインストール: ec2インスタンスにssmエージェントをインストールし、セッションマネージャープラグインを有効にします。
-
セッションマネージャーの利用: awsマネジメントコンソールまたはaws cliからセッションマネージャーのセッションを開始することができます。セッションを開始するには、対象のec2インスタンスのidを指定するだけで簡単にアクセスすることができます。
以下にaws cliを使用してセッションマネージャーを開始するサンプルコードを示します。
aws ssm start-session --target i-1234567890abcdef0
セッションマネージャーを使用したインスタンスのトラブルシューティング
セッションマネージャーは、インスタンスのトラブルシューティングに非常に便利です。セッションマネージャーを使用することで、リモートアクセスを必要とせずにインスタンスのログや状態を確認することができます。
以下に、セッションマネージャーを使用してインスタンスのトラブルシューティングを行うサンプルコードを示します。
aws ssm describe-instance-information --instance-information-filter-list "key=instancestatus,values=failed"
セッションマネージャーと統合されたコマンド実行とスクリプトの管理
セッションマネージャーは、インスタンスへのリモートコマンド実行やスクリプトの管理にも活用することができます。セッションマネージャーを使用することで、リモートコマンドを実行するためのssh接続の設定や、スクリプトの転送・実行の手間を省くことができます。
以下に、セッションマネージャーを使用してコマンド実行とスクリプトの管理を行うサンプルコードを示します。
aws ssm send-command --instance-ids i-12345 --document-name "aws-runshellscript" --parameters 'commands=["ls -al"]'
aws ssm create-association --name "myscriptassociation" --targets "key=instanceids,values=i-12345" --document-version "$default" --parameters 'commands=curl -sl https://example.com/somescript.sh | bash'
セッションマネージャーのロギングと監査機能
セッションマネージャーは、実行されたセッションやコマンドのログを保存することができます。また、cloudwatch logsにログを転送することも可能です。これにより、セッションやコマンドの実行状況を確認し、セキュリティおよび監査要件を満たすことができます。
以下に、セッションマネージャーのログを保存する設定例を示します。
aws ssm update-association-status --name "myscriptassociation" --output-location "s3bucket=my-log-bucket,s3prefix=ssm-logs"
以上が、aws system managerのセッションマネージャーの活用法についての紹介でした。セッションマネージャーを活用することで、セキュアなリモートアクセスやインスタンスのトラブルシューティング、コマンド実行やスクリプト管理、ログの保存といった様々な活用が可能です。
参考記事:
- aws systems manager: セッションマネージャーを使用して ec2 インスタンスに対してセキュリティリモートアクセスを可能にする
- aws systems manager セッションマネージャーを使ってみる
【AWS System Manager】関連のまとめ
オンラインスクールを講師として活用する!