皆様、お世話になっております。鈴木と申します。
今回はAWS CloudFormationを使用してACMを作成して、Route53のドメインの暗号化を実施したいと思います。
1.目次
2.要件
- 前回作成したRoute53のサブドメインに証明書を付与
Route53のブログはこちら
3.AWS Certificate Manager (ACM)について
AWS Certificate Manager(ACM)は、AWSのSSL/TLS証明書の取得と管理を簡素化するサービスです。主な機能と利点は以下の通りです。
-
証明書の取得と管理:
- 無料証明書: AWSが提供する無料のSSL/TLS証明書を簡単に取得できます。
- カスタム証明書のインポート: 既存の証明書をACMにインポートし、一元管理できます。
-
証明書の自動更新:
- 自動更新: 証明書の有効期限が近づくと自動的に更新処理を行い、手動での更新作業を省略します。
-
セキュアな通信:
- 暗号化: 証明書を使用して、ウェブサイトやアプリケーションとの通信を暗号化し、データの安全性を確保します。
-
AWSサービスとの統合:
- シームレスな統合: Amazon CloudFront、Elastic Load Balancing(ELB)、API Gatewayなど、多くのAWSサービスとスムーズに統合できます。
-
簡素な管理:
- 直感的な管理: AWS Management Console、AWS CLI、またはAWS APIを使用して、証明書の管理を簡単に行えます。
利点として、証明書の取得、管理、更新が簡単に行え、セキュリティの強化とコスト削減が実現できます。AWS Certificate Manager(ACM)は、SSL/TLS証明書の管理を効率化し、AWS環境でのセキュリティを強化するための強力なツールです。
4.構成図
Route53で作成したドメインに証明書を付与してHTTPSの通信を実現します。
5.ソースコード全体
YAML形式にて記述しております。
またRoute53・ALB・ACMを同じファイルで記述しているため下記はACMのみを抜粋して居ります。
Resources:
# ACM 証明書作成
SubdomainCertificate:
Type: 'AWS::CertificateManager::Certificate'
Properties:
DomainName: !Sub "${SubdomainName}"
ValidationMethod: 'DNS'
DomainValidationOptions:
- DomainName: !Sub "${SubdomainName}"
ValidationDomain: !Sub "test.cloud5.jp"
Tags:
- Key: 'Name'
Value: 'naoki-acm'
6.ソースコード詳細
使用するオプション | 設定値 | 説明 |
---|---|---|
Type | AWS::CertificateManager::Certificate | デフォルトの定義 |
DomainName | !Sub "${SubdomainName}" | サブドメインを指定 |
ValidationMethod | DNS | 検証方法をDNSで指定 |
DomainValidationOptions DomainName |
!Sub "${SubdomainName}" | 検証サブドメインを指定 |
DomainValidationOptions ValidationDomain |
!Sub "ホストドメイン名" | サブドメインのホストゾーンであるドメインを指定 |
Tags | Key: ‘Name’ Value: ‘naoki-acm’ |
タグのキーと値を設定 |
7.検証
上記で作成したら認証方法がDNSなのでACMコンソール画面へ行きましょう。
ここで赤枠を押下してDNSレコードを作成することで認証が完了し、CNAMEのレコードも作成されます。
これでRoute53で作成したドメインに証明書が付与され、暗号化の通信を実現できます。
次回このドメインをALBに紐づけ、HTTPSで通信できるかをテストしていきます。
【CloudFormation】AWSマルチAZ3層アーキテクチャの構築_ALB
8.感想
Route53→ACMがここまでで構築できましたので、次回実際にALBに紐づけて暗号化通信が実施できるかを確認していきます。