プログラマでありたい

おっさんになっても、プログラマでありつづけたい

AWSのIAMアカウントに、Signing Certificateを使えるようにする方法。或いはX.509証明書の作り方

 AWSのAPIを呼び出す時はアクセスキーとシークレットアクセスキーがあれば、大抵のことが実現出来ます。なので、IAMでSigning Certificate(X.509証明書)を必要することは余りありません。が、IAMアカウントであっても必要とする場合があるので、その際のメモです。と言っても、ssh等でクライアント証明証を作る際の手順と何ら変わりありません。

1.秘密鍵・CSR・証明書の作成


mkdir ~/.ec2
cd ~/.ec2
openssl genrsa -out pk-amazon.pem 2048
openssl req -new -x509 -key pk-amazon.pem -out cert-amazon.pem -days 3650

string is too long, it needs to be less than  2 bytes long
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Osaka
Locality Name (eg, city) []:Osaka
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Personal
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:yourname
Email Address []:hoge@example.com

openssl pkcs8 -topk8 -in pk-amazon.pem -nocrypt > pk-temp.pem
mv pk-temp.pem pk-amazon.pem

2.証明書の登録



作成した証明書を、AWS Management Consoleから登録します。ログイン後にIAM画面にいき該当のユーザを選択し、Security Credentialsタブを選びます。そして、Signing CertificatesのところでManage Signing Certificatesを押して先ほど作成した証明書をアップロードします。(前述の作り方をしていれば、cert-amazon.pemの内容をコピペして貼り付ければ大丈夫です。)

3.まとめ



 特にまとめる必要もないほど、簡単に出来ます。マスターアカウントで全てをするのは、アクセスキーが漏洩した場合にかなり危険です。なので役割ごとに限定したIAMアカウントを使うという習慣を付けた方が良いのではないかなぁと思います。IAMを使っていない方は、是非お試しあれ。