AWSで使われるPEM形式の証明書を詳しく解説


AWSではPEM形式のキーペアが必要
AWSのAmazon EC2に作成したサーバーをインスタンスと呼びますが、そのインスタンスにログインするにはSSLにいる認証にPEM形式のキーペアを用います。よく使われるログイン名とパスワードは使いません。
暗号化で使われるPEM形式とキーペアについて説明する前に、AWSのインスタンスに接続する際の認証方法について説明します。
パスワードは危険
ターミナルソフトからLinuxサーバーにログインする際、昔からログイン名とパスワードが使われてきました。しかし、この形式はパスワードを破られやすいことから、インターネットに公開するサーバーで使用するべきではありません。
もちろん100文字を超えるランダムな文字列をパスワードにしていれば、そうそう破られることはありません。しかし、そのようなパスワードは人が覚えられません。逆に人が覚えられるパスワードでは容易に類推され破られます。
さらに長く複雑なパスワードをスマホなどに記録させる方法もありますが、それが確実に安全とは言えません。
SSLの公開鍵暗号方式
SSLは、公開されている鍵で暗号化したデータを非公開の鍵でデータに戻す方法を利用し、インターネット上の通信データを暗号化して安全に送信する方法として広く使われています。
そして、この方法のメリットは、公開鍵を持っている方は誰でも暗号化できるものの、それを基のデータに戻すには非公開の鍵が必要な点です。もし非公開の鍵を持っていない方が、暗号化されたデータを受け取っても基のデータには戻せません。
今使われているターミナルソフトはSSLに対応しており、公開鍵を使って暗号化することでサーバーにパスワード無しでログインする機能を持っています。そしてAWSのインスタンスへの接続に利用できるのはこの方法のみです。
公開鍵を作るには
SSLの公開鍵を使った認証を利用するためには、接続するサーバーの公開鍵を入手しなければなりません。Amazon EC2で作成したインスタンスの公開鍵は、Amazon EC2コンソールのキーペアの作成メニューで作成できます。
なお、Amazon EC2に設定したインスタンスへの接続に必要なSSLの公開鍵を含む文字列をキーペアと呼んでいます。
Amazon EC2コンソールでキーペアを作成する際、PEM形式を含む幾つかの形式を選択できます。もしAmazon EC2でLinuxを利用している場合は、PEM形式を選択してください。
さらに、macOSやLinuxではopensslコマンドでPEM形式のキーペアを作成できます。もし、必要な場合は、それぞれのターミナルなどで作成してください。
PEMとは何か
先ほど紹介したように、Amazon EC2のインスタンスに接続するには、Amazon EC2コンソールで作成したPEM形式のキーペアが必要です。では、SSLによる暗号化処理で用いられるPEM形式とは何でしょうか。暗号化処理に詳しくない方のためにPEM形式について解説します。
PEMはメールのフォーマット?
今回紹介するPEMとは、Privacy Enhanced Mailの略で、そのまま日本語に直すとプライバシー強化メールという意味です。つまり電子メールを暗号化することで経路の途中でのぞき見されることなく、安全に送るための方法の1つと言えます。
そしてPEMでは公開鍵暗号方式で使われる代表的な暗号アルゴリズムのRSAが使われています。さらにPEMは、認証局を利用することで改竄防止対策を施した、公開鍵を証明書と呼ばれる形式に変換するセキュアな仕組みです。
AWSでは認証局もサービスしているので、AWSで作成されたPEMは信頼性が保証されています。実際にはキーペアをメールとして送信することはありませんが、このようにAWSで作成されたキーペアは信頼性を保証されたデータです。
PEM形式はLinux用の証明書
先ほど、PEMとは証明書と呼ばれる形式に変換する仕組みと説明しましたが、電子証明に使われる証明書はPEM形式だけではありません。Windowsでは、「.cer」「.p7b」「.pfx」といった形式のファイルも使われます。
一方、今回紹介しているPEM形式はLinuxでよく使われる形式です。
なお、PEMのような電子証明に使われる証明書に含まれるデータには、認証局が必要です。そして認証局はAWSだけではありません。ドメインを販売している会社や認証専門の会社でも認証局のサービスを販売しています。AWSを利用した場合、そのような外部の認証局も利用可能です。
PEM形式のキーペアを利用する方法
Amazon EC2のインスタンスに接続し認証するには、Amazon EC2コンソールで作成するキーペアを利用します。ただしキーペアを正しく設定しないと接続できません。
次からPEM形式のキーペアを正しく利用する方法について紹介します。
キーペア作成手順
キーペアは、AWSの管理サイトの1つであるAmazon EC2コンソールに接続し、「NETWORK & SECURITY」で「Key Pairs」を選択して作成します。なおこの画面の「File format」でPEM形式の「pem」を選んでください。
ただし、この画面で登録する「名前」に対応したキーペアを作成できるのは1回だけです。キーペアの再発行はできません。作成したキーペアはしっかり管理してください。
なお、AWS CLIやPower ShellでAWSを管理できる仕組みを作っている方は、コマンドラインからもキーペアを作成できます。そして、この場合でも「名前」に対応したキーペアを作成できるのは1回だけなので注意が必要です。
ターミナルソフトに設定する
WindowsのターミナルアプリでAmazon EC2のインスタンスに接続する場合、ユーザー名を指定しますがパスワードは指定しません。その代わりにRSAで生成した公開鍵を登録します。
AWSのキーペアはRSAで生成した公開鍵を含んでいるので、インスタンスに接続する場合は先ほど紹介したPEM形式のキーペアを指定してください。
例えば、Windows向けのフリーソフトとしてよく使われるTeraTermでは、SSH認証の画面で「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックを入れ、秘密鍵ボタンでPEM形式のキーペアを指定してください。これでAmazon EC2のインスタンスに接続できます。
PEM形式の証明書を別のLinuxに設定する
Linux同士をSSLでパスワード無しで接続できれば、cronとrysncコマンドを組み合わせて自動でファイルを転送する仕組みなども作れます。そして、cronとrysncコマンドの仕組みで使われるRSAの公開鍵は、今回紹介しているPEM形式のキーペアに含まれる公開鍵と同じです。
では、どうすればキーペアに含まれる公開鍵を使って、rsyncコマンドを実行する環境を作れるでしょうか。次からLinuxサーバーでAWSのキーペアを利用する方法を紹介します。
sshによるパスワード無しログインの設定
Linux同士なら自分のログインディレクトリに公開鍵を設定することで、sshコマンドによるパスワード無しのログインが可能です。具体的には接続したい公開鍵を「~/.ssh/authorized_keys」にコピーします。
では、PEM形式の証明書からどうやって公開鍵のテキストを取り出すのでしょうか。LinuxやmacOSならssh-keygenコマンドを利用してください。
PEM形式の証明書から公開鍵を取り出すコマンド
ssh-keygen -y -f PEM形式の証明書 > 公開鍵のテキスト
このコマンドで取り出した公開鍵のテキストを「~/.ssh/authorized_keys」コピーすることで、sshコマンドでパスワード無しのログインが可能です。
ただし、「~/.ssh/authorized_keys」ファイルのアクセス権が「600」でなければなりません。新規にファイルを作った場合は、ファイルのアクセス権をチェックしましょう。
さらにsshを利用すれば、rsyncコマンドによるネットワークを介したファイルコピーもできます。AWSに作成したインスタンスの管理の他、外部のサーバーと連携した仕組みにも利用できるので、ぜひ、活用してください。
この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。