Python で CDK を使用して DNS 証明書の検証を設定しようとしています。
私のコードは次のようになります。
class ApiService(core.Construct):
def __init__(self, scope: core.Construct, id: str, env: str) -> None:
# set up hosted zone for existing Domain in Route53
hosted_zone = aws_route53.HostedZone(self, "devHostedZone", zone_name="example.com")
# Create validation from DNS with hosted zone
cert_validation = CertificateValidation.from_dns(hosted_zone)
subj_alt_names = ['example.com', '*.example.com']
# DNS Validated certificate in zone, for domain and alternate names in specified region (for edge enabled APIs)
cert_dns_val = DnsValidatedCertificate(
self,
'DnsValidation',
hosted_zone=hosted_zone,
domain_name='example.com',
subject_alternative_names=subj_alt_names,
region='us-east-1',
validation=cert_validation)
# Set up the gateway with domain name settings
api = apigateway.RestApi(
self,
"My-api",
rest_api_name="My API",
description="A Lambda that contains the REST API for My API.",
domain_name=apigateway.DomainNameOptions(certificate=cert_dns_val, domain_name=env+".example.com")
)
# Finally create A Record to route incoming requests internally to the API Gateway that was just created
target = aws_route53.RecordTarget.from_alias(alias.ApiGateway(api))
record = ARecord(self, 'ARecord', target=target, zone=hosted_zone, record_name=env+".example.com")
頭が回らないように見える問題は
- 証明書を検証し、
- デフォルトで TLS 1.2 に設定する方法 (TLS 1.0 ではありません)
これを使用して私が見る問題:
- コンソールの ACM (AWS Certificate Manager) で生成された 3 つの証明書があります。-> これは間違っています。1 つのみ生成する必要があります。
- CDK は CNAME レコードを自動的に追加しないようなので、CloudFormation の進行中に手動で追加してみました。しかし、それもうまくいきませんでした。
生成された 6 つの CNAME レコードはすべて同一であることを追加することが重要であるため、Route53 のホスト ゾーン構成で常に 1 つの CNAME レコードのみが必要になります (これを設定しましたが、違いはないようです)。