AWS関連

【AWS】ACM for Nitro Enclaves|EC2で証明書を利用する

今回は、SOA学習を進める中で初めて知った「ACM for Nitro Enclaves」について簡単に整理してみたいと思います。

ACM for Nitro Enclaves とは?

ACM for Nitro Enclaves は、AWS Nitro Enclaves を使って Amazon EC2 インスタンスで実行されているウェブアプリケーションおよびサーバーで、パブリックおよびプライベート SSL/TLS 証明書を使用できるようにする Enclaves アプリケーションです。
(2020年10月のアップデートから抜粋)

要は、ACMで作成した証明書をEC2で直接利用できるようになりましたよ、ということですね(たぶん)。

AWS Nitro System については詳細追いかけれてませんが、クラスメソッド臼田さんの記事(下記)が re:Invent 2020 のレポートしてアップされているので参考になりそうです。(理解できたとは言ってません…笑)

利用の流れ

せっかくなので、ユーザーガイドで ACM for Nitro Enclaves の使い方について見てみました。

ざっくりとした流れは以下の通り。

  • 1.ACM で証明書を作成
  • 2.EC2 インスタンスを起動
  • 3.IAM ロールを作成
  • └証明書への関連付け
  • └ポリシーの適用
  • 4.IAM ロールをEC2 にアタッチ
  • 5.Nginx を設定

個人的に気になった点を以下に記載します。

サポート範囲

  • Nitro EnclavesのACMは、プライベート証明書とパブリック証明書の両方をサポートする
  • Linuxインスタンスでのみ使用でき、Windowsインスタンスはサポートしていない
  • Nginx のみサポートしている

インスタンス起動時に “–enclave-options” オプションを指定して有効化

ユーザーガイド内のサンプルコマンドにあるように、”run-instances” コマンドを実行する際のオプション指定により Nitro Enclaves を有効化するようです。

aws ec2 run-instances \
    --image-id ami_id \
    --count 1 \
    --instance-type supported_instance_type \
    --key-name your_key_pair \
    --enclave-options 'Enabled=true'

IAM ロールと証明書の関連付けには “associate-enclave-certificate-iam-role” コマンドを利用

同じくユーザーガイド内のサンプルコマンドにあるように、以下のようなコマンドにて関連付けを行います。

aws ec2 associate-enclave-certificate-iam-role \
    --region region \
    --certificate-arn certificate_ARN \
    --role-arn role_ARN

Nginx の設定ファイルを準備する

Nginx 用の設定ファイルとして、下記2つのファイルを準備する必要があります。詳細内容は(ユーザーガイド参照)

  • /etc/nitro_enclaves/acm.yaml
  • /etc/nginx/nginx.conf

終わりに

まとめることは特にありませんが、ACM for Nitro Enclaves についてなんとなく、理解が進んだのでヨシとします。

以上です。最後まで読んでいただきありがとうございました。