雑記帳
2011-11-14 (Mon) [長年日記]
■ [AWS] IAMアカウントでX.509証明書が使えるようにする
IAMアカウントが必要なときは、大抵の場合アクセスキーIDで事足りることが多い。しかし、EC2関連のCLIを実行するときにX.509証明書が必要になってくる。
アクセスキーIDは自動的に作成され、AWS Management Consoleで管理できるのだが、X.509証明書は作成されない。IAMのドキュメントによると、次のようにある。
IAM doesn't have an API action to create signing certificates, so you must use a third-party tool such as OpenSSL to create the certificate first. We recommend you create an RSA key that is either 1024-bit or 2048-bit in length. The certificate can be self-signed, and the key and certificate must be in PEM format. For more information about OpenSSL, go to http://www.openssl.org/.
ということで、OpenSSLを使って作成し、AWSに登録する必要がある。
秘密鍵を作成する
RSAの秘密鍵を作成する。鍵長は、1024もしくは2048ビット。
$ openssl genrsa -out iam.key 2048
CSRを作成する
秘密鍵からCSR (Certificate Signing Request, 証明書署名要求)を作成する。
$ openssl req -new -key iam.key -out iam.csr
ここで色々と聞かれるが、任意の内容で問題ない。
証明書を作成する
作成した秘密鍵とCSRから、証明書を作成する。
$ openssl x509 -req -in iam.csr -signkey iam.key -out iam.pem
証明書を登録する
作成した証明書を、AWSに登録をする。
AWS Management ConsoleのIAMからユーザを選択し、Security Credentialsを選択し、証明書をアップロードするための「Manage Signing Certificates」を押す。
「Upload Signing Certificate」を押す。
証明書を貼り付けて、「OK」を押す。
これで登録できた。あとは、CLIで証明書が必要なコマンドを実行する際に、登録した証明書と鍵を使って実行すれば良い。
ちなみに、この時登録される証明書は、AWS内ではユニークでなければならないようだ。つまり、使い回しができない。テストするために使いまわそうとしたら、登録時にエラーがでてしまった。仕組みを考えると当然なのだが、実際にやってみるまで気が付かなかった。