Private key authentication has been deprecated from the CLI.
EC2上でAWSのコマンドラインツールを使うためには、アクセスキー(アクセスキー ID およびシークレットアクセスキー)が必要・・
そんな風に考えていた時期が俺にもありました。
昔、Webの情報を参考に書いたEC2のスナップショットを自動的に取得するスクリプト、今はもう動かないようです。
EBSタイプインスタンスのスナップショット取得、パージを自動化
シェルスクリプトを実行すると、CLIツールが実行できない。
[hogehoge@ip-XXX-XXX-XXX-XXX bin]$ ./create_and_purge_snapshot.sh
[creating…] Private key authentication has been deprecated from the CLI. Please refer to the following documentation for more details: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-soap-api.html
Private key authentication has been deprecated from the CLI. Please refer to the following documentation for more details: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-soap-api.html
環境変数のEC2_PRIVATE_KEYとEC2_CERT、もう受け付けてくれない模様。
If you are using the Amazon EC2 CLI tools, you will be able to use the EC2_PRIVATE_KEY and EC2_CERT environment variables for versions up to and including version 1.6.13.0. Thereafter, you must use the AWS_ACCESS_KEY and AWS_SECRET_KEY variables instead. For more information, see Setting Up the Amazon EC2 CLI and AMI Tools.
セキュリティを考えると、極めて妥当な対応ですね。EC2のインスタンス毎に秘密鍵をいちいち配置するとか面倒だし。
AWS_ACCESS_KEYとAWS_SECRET_KEYを代わりに使え的なことが書いてありますが、IAMのRoleを活用するのが、ベストプラクティスだと思います。
ロールを活用して、EC2上でCLIツールを実行するには。
1、Management ConsoleでIAMにアクセス。
2、Rolesの画面で、”Create New Role”
3、Roleの名前をつける。
4、AWS Service Rolesは”Amazon EC2″を選択。
5、Select Policy Templateは”Amazon EC2 Full Access”を選択してみる。
無論、フルアクセスが必要なければ、Policy Generator等で権限を絞ることも可能(実運用環境ではそうすべき)。
6、中身を確認してNext Step。次の画面でCreate Roleすれば完了。
7、EC2起動時に、Instance Detailにて、作成したIAM Roleを付与する。
IAM Roleは、EC2インスタンス起動時や、Stopしている時に新規で付与することはできないので注意。
(一回Terminateして、再度Launchする時にRole設定してあげないとだめ)
以上でおしまい。
これで、OSユーザの環境変数やスクリプト中にEC2_PRIVATE_KEYやAWS_ACCESS_KEYを設定しなくても、CLIツール使えるようになる。
IAM Role、めちゃ便利ですね。
One thought on “Private key authentication has been deprecated from the CLI.”
Comments are closed.