«前の日記(2011-11-11 (Fri)) 最新 次の日記(2011-11-17 (Thu))» 編集

雑記帳


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」を押す。

IAM User

「Upload Signing Certificate」を押す。

Manage Signing Certificates

証明書を貼り付けて、「OK」を押す。

Upload Signing Certificate

これで登録できた。あとは、CLIで証明書が必要なコマンドを実行する際に、登録した証明書と鍵を使って実行すれば良い。

ちなみに、この時登録される証明書は、AWS内ではユニークでなければならないようだ。つまり、使い回しができない。テストするために使いまわそうとしたら、登録時にエラーがでてしまった。仕組みを考えると当然なのだが、実際にやってみるまで気が付かなかった。