AWS CLI の場合
$ aws ec2 get-password-data --instance-id i-1234567890abcdef0 --priv-launch-key /path/to/mykey.pem
AWS SDK for Ruby の場合
SDK は復号化までしてくれないので CLI のソースを参考に自分でやる。
require "aws-sdk" require "base64" require "openssl" ec2_resource = Aws::EC2::Resource.new instance = ec2_resource.instance "i-1234567890abcdef0" password_encrypted = instance.password_data.password_data private_key = OpenSSL::PKey::RSA.new(File.read(File.expand_path("/path/to/mykey.pem"))) p private_key.private_decrypt(Base64.decode64(password_encrypted))
ec2ctl の場合
拙作のツールです。
$ ec2ctl --attributes instance_id,tag:Name,password --private-key-file "/path/to/mykey.pem" { "time": "2017-01-17 12:18:07 +0900", "severity": "INFO", "ec2_instances_summary": [ { "instance_id": "i-1234567890abcdef1", "tag:Name": "test_win1", "password": "5z(bo%%o5w$eiR2L!$=H6(jB=5VqUGrV" }, { "instance_id": "i-1234567890abcdef2", "tag:Name": "test_win2", "password": "*HQTw2brpMGXO)dh9%rlXWTvGh@=b&GQ" } ] }