こんにちは、ちゃりおです。
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にログインできます。
マネジメントコンソールからアクセスするのが、面倒な場合は試してみてください。