EC2 Instance Connect CLIでEC2インスタンスへのSFTPもできます
こんにちは奥です。 先程EC2に対してIAMでログイン制御を行えるEC2 Instance Connectが発表されました。 詳しくはこちらの記事をみていただきたいです。
これだけでも便利ですが、CLIからEC2 Instance Connectを使うためのコマンドである、ec2 instance connect cli
にはSFTPの機能もついています。msftpという名前で使えるので今回はこれを紹介したいと思います。
インストール方法
ec2 instance connect cli
のインストール時に同包されているので取得済みの方は特に必要なものはありません。
また前提として、aws-cliのインストールがmsshで求められているのでそちらも合わせてインストールしてください。
既にmsshのためにインストールしてる方もいると思いますが、おさらいとして、インストール方法を記載します。
$ aws s3api get-object --bucket ec2-instance-connect --key cli/ec2instanceconnectcli-latest.tar.gz ec2instanceconnectcli-latest.tar.gz { "AcceptRanges": "bytes", "LastModified": "Thu, 27 Jun 2019 19:16:19 GMT", "ContentLength": 21550, "ETag": "\"4f123a5eb28a03e3f62e40e1797e7026\"", "VersionId": "n117kEUFch4DbmYprejb_i5jDVP8pbR5", "ContentType": "application/x-gzip", "Metadata": {} } $ sudo pip install ec2instanceconnectcli-latest.tar.gz
簡単ですね。
msftp
実際にhelpをみてどんなものかを確認しましょう。 基本的には、sftpコマンドと同じですが、ホストの指定にインスタンスIDを使用していますね。
msftp --help usage: msftp [-u aws_profile] [-z availability_zone] [supported sftp flags] target target => [user@]instance_id[:file ...][:dir[/]] | [user@]hostname[:file ...][:dir[/]] [supported sftp flags] => [-P port] [-b batchfile] optional arguments: -h, --help show this help message and exit -r , --region AWS region -z , --zone Availability zone -u , --profile AWS Config Profile -t , --instance_id EC2 Instance ID. Required if target is hostname -d, --debug Turn on debug logging
実際に使ってみるとこんな感じの使用感です。 ec2instanceconnectcliをEC2インスタンスにアップロードしています。
$ msftp i-xxxxxxxxxxxxxxxxx Connected to ec2-user@xxx.xxx.xxx.xxx. sftp> put ec2instanceconnectcli-latest.tar.gz Uploading ec2instanceconnectcli-latest.tar.gz to /home/ec2-user/ec2instanceconnectcli-latest.tar.gz ec2instanceconnectcli-latest.tar.gz 100% 21KB 603.6KB/s 00:00 sftp> quit
サーバにログインしてファイルがアップロードされているかも確認してみます。
mssh i-xxxxxxxxxxxxxxxxx Last login: Fri Jun 28 02:54:49 2019 from ec2-3-112-23-0.ap-northeast-1.compute.amazonaws.com __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ [ec2-user@ip-192-168-0-125 ~]$ ls ec2instanceconnectcli-latest.tar.gz
無事アップロードされてますね。
さいごに
鍵の管理からある程度解放されそうな予感がするので嬉しい限りですね。