5.3. Amazon CloudFront の設定
新しく作成されたカスタム Ingress Controller の NLB ホスト名を取得します。
$ NLB=$(oc -n openshift-ingress get service router-cloudfront-waf \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')証明書を Amazon Certificate Manager にインポートします。
cert.pemはワイルドカード証明書、fullchain.pemはワイルドカード証明書のチェーン、privkey.pemはワイルドカード証明書の秘密鍵です。注記この証明書は、クラスターがデプロイされているリージョンに関係なく
us-east-1にインポートする必要があります。Amazon CloudFront はグローバル AWS サービスであるためです。例
$ aws acm import-certificate --certificate file://cert.pem \ --certificate-chain file://fullchain.pem \ --private-key file://privkey.pem \ --region us-east-1- AWS コンソール にログインして、CloudFront ディストリビューションを作成します。
次の情報を使用して、CloudFront ディストリビューションを設定します。
注記以下の表でオプションが指定されていない場合は、デフォルトのままにしておきます (空白でも構いません)。
Expand オプション 値 Origin domain
前のコマンドからの出力 [1]
名前
rosa-waf-ingress [2]
Viewer protocol policy
Redirect HTTP to HTTPS
Allowed HTTP methods
GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
Cache policy
CachingDisabled
Origin request policy
AllViewer
Web Application Firewall (WAF)
Enable security protections
Use existing WAF configuration
true
Choose a web ACL
cloudfront-wafAlternate domain name (CNAME)
*.apps.example.com [3]
Custom SSL certificate
上のステップでインポートした証明書を選択 [4]
-
origin domain を取得するには、
echo ${NLB}を実行します。 - 複数のクラスターがある場合は、オリジンの名前が一意であることを確認してください。
- これは、カスタム Ingress Controller の作成に使用したワイルドカードドメインと同じである必要があります。
- これは、上で入力した alternate domain name と同じである必要があります。
-
origin domain を取得するには、
Amazon CloudFront ディストリビューションエンドポイントを取得します。
$ aws cloudfront list-distributions --query "DistributionList.Items[?Origins.Items[?DomainName=='${NLB}']].DomainName" --output textCNAME を持つカスタムのワイルドカードドメインの DNS を、前述のステップの Amazon CloudFront ディストリビューションエンドポイントに更新します。
例
*.apps.example.com CNAME d1b2c3d4e5f6g7.cloudfront.net