インフラ

AWS SSMセッションマネージャTips AWS CLI

aws ssm

こんにちは、ちゃりおです。

SSMセッションマネージャを使えば、EC2インスタンスにSSH不要で入れます。
マネジメントコンソールからセッションマネージャ使っていたのですが、CLI使えばさらに便利であることに気づいたので書きます。

SSMセッションマネージャとは

Session Manager はフルマネージド型 AWS Systems Manager 機能であり、インタラクティブなワンクリックブラウザベースのシェルや AWS CLI を介して Amazon EC2 インスタンス、オンプレミスインスタンス、および仮想マシン (VM) を管理できます。Session Manager を使用すると、インバウンドポートを開いたり、踏み台ホストを維持したり、SSH キーを管理したりすることなく、監査可能なインスタンスを安全に管理できます。また、Session Manager を使用すると、マネージドインスタンスへの簡単なワンクリックのクロスプラットフォームアクセスをエンドユーザーに提供しつつ、インスタンスへの制御されたアクセス、厳格なセキュリティプラクティス、完全に監査可能なログ (インスタンスアクセスの詳細を含む) が要求される企業ポリシーに簡単に準拠できます。

AWS Systems Manager Session Manager

セッションマネージャはSSMエージェントを通して、サーバにアクセスできる機能です。
SSHキーの管理や、SSHのポートを開く必要がないのでセキュアです。

Systems Manager セッションマネージャを使ったら SSH 管理不要になった

AWS CLIでセッションマネージャを使う

aws ssm start-session セッションマネージャで接続する

 aws ssm start-session --target <インスタンスID>

上記のコマンドで、指定したインスタンスにセッションマネージャでアクセスできます。
これをエイリアスとかに設定しておけば便利です。

aws ec2 describe-instances インスタンスIDを取得する

aws ec2 describe-instances --filter "Name=tag:Name,Values=bastion" --query 'Reservations[].Instances[].InstanceId' --output text

タグからインスタンスIDを取得するコマンドです。
AutoScalingなんかだと、インスタンスIDが変わると思うのでインスタンスIDを取得するコマンドも用意しておく捗ると思います。

まとめ

今回は、AWSセッションマネージャを使う際のAWS CLIについてでした。
コマンドラインで行ければ、SSHとあまり変わらずにEC2にログインできます。

マネジメントコンソールからアクセスするのが、面倒な場合は試してみてください。

公開鍵秘密鍵-min
踏み台サーバの鍵(公開鍵・秘密鍵)の管理方法について比較してみたこんにちは、ちゃりおです。 みなさんは、踏み台サーバの鍵の管理どうしてますか。 ユーザごとにアカウント作ったり、秘密鍵を共有していたり...
AWSでWebサイトへのIPアドレスを制限する方法こんにちは、ちゃりおです。 今回はAWSでIPアドレスを制限する方法についてです。 AWSは様々なサービスがあり、アクセス制限の方法も...
php sdk ssm
パラメータストアの使い方 AWS SDK for PHPで.envを管理してみるこんにちは、ちゃりおです。 現在、「.env」の管理がいけていなくて、なんとかしたい気持ちがあります。 SSM パラメータストアが良さ...