aws-cdk.aws-certificatemanager


Nameaws-cdk.aws-certificatemanager JSON
Version 1.203.0 PyPI version JSON
download
home_pagehttps://github.com/aws/aws-cdk
SummaryThe CDK Construct Library for AWS::CertificateManager
upload_time2023-05-31 23:01:06
maintainer
docs_urlNone
authorAmazon Web Services
requires_python~=3.7
licenseApache-2.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AWS Certificate Manager Construct Library

<!--BEGIN STABILITY BANNER-->---


![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)

![cdk-constructs: Stable](https://img.shields.io/badge/cdk--constructs-stable-success.svg?style=for-the-badge)

---
<!--END STABILITY BANNER-->

AWS Certificate Manager (ACM) handles the complexity of creating, storing, and renewing public and private SSL/TLS X.509 certificates and keys that
protect your AWS websites and applications. ACM certificates can secure singular domain names, multiple specific domain names, wildcard domains, or
combinations of these. ACM wildcard certificates can protect an unlimited number of subdomains.

This package provides Constructs for provisioning and referencing ACM certificates which can be used with CloudFront and ELB.

After requesting a certificate, you will need to prove that you own the
domain in question before the certificate will be granted. The CloudFormation
deployment will wait until this verification process has been completed.

Because of this wait time, when using manual validation methods, it's better
to provision your certificates either in a separate stack from your main
service, or provision them manually and import them into your CDK application.

**Note:** There is a limit on total number of ACM certificates that can be requested on an account and region within a year.
The default limit is 2000, but this limit may be (much) lower on new AWS accounts.
See https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html for more information.

## DNS validation

DNS validation is the preferred method to validate domain ownership, as it has a number of advantages over email validation.
See also [Validate with DNS](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html)
in the AWS Certificate Manager User Guide.

If Amazon Route 53 is your DNS provider for the requested domain, the DNS record can be
created automatically:

```python
my_hosted_zone = route53.HostedZone(self, "HostedZone",
    zone_name="example.com"
)
acm.Certificate(self, "Certificate",
    domain_name="hello.example.com",
    validation=acm.CertificateValidation.from_dns(my_hosted_zone)
)
```

If Route 53 is not your DNS provider, the DNS records must be added manually and the stack will not complete
creating until the records are added.

```python
acm.Certificate(self, "Certificate",
    domain_name="hello.example.com",
    validation=acm.CertificateValidation.from_dns()
)
```

When working with multiple domains, use the `CertificateValidation.fromDnsMultiZone()`:

```python
example_com = route53.HostedZone(self, "ExampleCom",
    zone_name="example.com"
)
example_net = route53.HostedZone(self, "ExampleNet",
    zone_name="example.net"
)

cert = acm.Certificate(self, "Certificate",
    domain_name="test.example.com",
    subject_alternative_names=["cool.example.com", "test.example.net"],
    validation=acm.CertificateValidation.from_dns_multi_zone({
        "test.example.com": example_com,
        "cool.example.com": example_com,
        "test.example.net": example_net
    })
)
```

## Email validation

Email-validated certificates (the default) are validated by receiving an
email on one of a number of predefined domains and following the instructions
in the email.

See [Validate with Email](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html)
in the AWS Certificate Manager User Guide.

```python
acm.Certificate(self, "Certificate",
    domain_name="hello.example.com",
    validation=acm.CertificateValidation.from_email()
)
```

## Cross-region Certificates

ACM certificates that are used with CloudFront -- or higher-level constructs which rely on CloudFront -- must be in the `us-east-1` region.
The `DnsValidatedCertificate` construct exists to facilitate creating these certificates cross-region. This resource can only be used with
Route53-based DNS validation.

```python
# my_hosted_zone: route53.HostedZone

acm.DnsValidatedCertificate(self, "CrossRegionCertificate",
    domain_name="hello.example.com",
    hosted_zone=my_hosted_zone,
    region="us-east-1"
)
```

## Requesting private certificates

AWS Certificate Manager can create [private certificates](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html) issued by [Private Certificate Authority (PCA)](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html). Validation of private certificates is not necessary.

```python
import aws_cdk.aws_acmpca as acmpca


acm.PrivateCertificate(self, "PrivateCertificate",
    domain_name="test.example.com",
    subject_alternative_names=["cool.example.com", "test.example.net"],  # optional
    certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, "CA", "arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77")
)
```

## Importing

If you want to import an existing certificate, you can do so from its ARN:

```python
arn = "arn:aws:..."
certificate = acm.Certificate.from_certificate_arn(self, "Certificate", arn)
```

## Sharing between Stacks

To share the certificate between stacks in the same CDK application, simply
pass the `Certificate` object between the stacks.

## Metrics

The `DaysToExpiry` metric is available via the `metricDaysToExpiry` method for
all certificates. This metric is emitted by AWS Certificates Manager once per
day until the certificate has effectively expired.

An alarm can be created to determine whether a certificate is soon due for
renewal ussing the following code:

```python
import aws_cdk.aws_cloudwatch as cloudwatch

# my_hosted_zone: route53.HostedZone

certificate = acm.Certificate(self, "Certificate",
    domain_name="hello.example.com",
    validation=acm.CertificateValidation.from_dns(my_hosted_zone)
)
certificate.metric_days_to_expiry().create_alarm(self, "Alarm",
    comparison_operator=cloudwatch.ComparisonOperator.LESS_THAN_THRESHOLD,
    evaluation_periods=1,
    threshold=45
)
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/aws/aws-cdk",
    "name": "aws-cdk.aws-certificatemanager",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "~=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "Amazon Web Services",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/ef/9c/aff54acef961ebdb5b9025331af65d456d1bbe44239bd8ad4b5757777c52/aws-cdk.aws-certificatemanager-1.203.0.tar.gz",
    "platform": null,
    "description": "# AWS Certificate Manager Construct Library\n\n<!--BEGIN STABILITY BANNER-->---\n\n\n![cfn-resources: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)\n\n![cdk-constructs: Stable](https://img.shields.io/badge/cdk--constructs-stable-success.svg?style=for-the-badge)\n\n---\n<!--END STABILITY BANNER-->\n\nAWS Certificate Manager (ACM) handles the complexity of creating, storing, and renewing public and private SSL/TLS X.509 certificates and keys that\nprotect your AWS websites and applications. ACM certificates can secure singular domain names, multiple specific domain names, wildcard domains, or\ncombinations of these. ACM wildcard certificates can protect an unlimited number of subdomains.\n\nThis package provides Constructs for provisioning and referencing ACM certificates which can be used with CloudFront and ELB.\n\nAfter requesting a certificate, you will need to prove that you own the\ndomain in question before the certificate will be granted. The CloudFormation\ndeployment will wait until this verification process has been completed.\n\nBecause of this wait time, when using manual validation methods, it's better\nto provision your certificates either in a separate stack from your main\nservice, or provision them manually and import them into your CDK application.\n\n**Note:** There is a limit on total number of ACM certificates that can be requested on an account and region within a year.\nThe default limit is 2000, but this limit may be (much) lower on new AWS accounts.\nSee https://docs.aws.amazon.com/acm/latest/userguide/acm-limits.html for more information.\n\n## DNS validation\n\nDNS validation is the preferred method to validate domain ownership, as it has a number of advantages over email validation.\nSee also [Validate with DNS](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-dns.html)\nin the AWS Certificate Manager User Guide.\n\nIf Amazon Route 53 is your DNS provider for the requested domain, the DNS record can be\ncreated automatically:\n\n```python\nmy_hosted_zone = route53.HostedZone(self, \"HostedZone\",\n    zone_name=\"example.com\"\n)\nacm.Certificate(self, \"Certificate\",\n    domain_name=\"hello.example.com\",\n    validation=acm.CertificateValidation.from_dns(my_hosted_zone)\n)\n```\n\nIf Route 53 is not your DNS provider, the DNS records must be added manually and the stack will not complete\ncreating until the records are added.\n\n```python\nacm.Certificate(self, \"Certificate\",\n    domain_name=\"hello.example.com\",\n    validation=acm.CertificateValidation.from_dns()\n)\n```\n\nWhen working with multiple domains, use the `CertificateValidation.fromDnsMultiZone()`:\n\n```python\nexample_com = route53.HostedZone(self, \"ExampleCom\",\n    zone_name=\"example.com\"\n)\nexample_net = route53.HostedZone(self, \"ExampleNet\",\n    zone_name=\"example.net\"\n)\n\ncert = acm.Certificate(self, \"Certificate\",\n    domain_name=\"test.example.com\",\n    subject_alternative_names=[\"cool.example.com\", \"test.example.net\"],\n    validation=acm.CertificateValidation.from_dns_multi_zone({\n        \"test.example.com\": example_com,\n        \"cool.example.com\": example_com,\n        \"test.example.net\": example_net\n    })\n)\n```\n\n## Email validation\n\nEmail-validated certificates (the default) are validated by receiving an\nemail on one of a number of predefined domains and following the instructions\nin the email.\n\nSee [Validate with Email](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-validate-email.html)\nin the AWS Certificate Manager User Guide.\n\n```python\nacm.Certificate(self, \"Certificate\",\n    domain_name=\"hello.example.com\",\n    validation=acm.CertificateValidation.from_email()\n)\n```\n\n## Cross-region Certificates\n\nACM certificates that are used with CloudFront -- or higher-level constructs which rely on CloudFront -- must be in the `us-east-1` region.\nThe `DnsValidatedCertificate` construct exists to facilitate creating these certificates cross-region. This resource can only be used with\nRoute53-based DNS validation.\n\n```python\n# my_hosted_zone: route53.HostedZone\n\nacm.DnsValidatedCertificate(self, \"CrossRegionCertificate\",\n    domain_name=\"hello.example.com\",\n    hosted_zone=my_hosted_zone,\n    region=\"us-east-1\"\n)\n```\n\n## Requesting private certificates\n\nAWS Certificate Manager can create [private certificates](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html) issued by [Private Certificate Authority (PCA)](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html). Validation of private certificates is not necessary.\n\n```python\nimport aws_cdk.aws_acmpca as acmpca\n\n\nacm.PrivateCertificate(self, \"PrivateCertificate\",\n    domain_name=\"test.example.com\",\n    subject_alternative_names=[\"cool.example.com\", \"test.example.net\"],  # optional\n    certificate_authority=acmpca.CertificateAuthority.from_certificate_authority_arn(self, \"CA\", \"arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/023077d8-2bfa-4eb0-8f22-05c96deade77\")\n)\n```\n\n## Importing\n\nIf you want to import an existing certificate, you can do so from its ARN:\n\n```python\narn = \"arn:aws:...\"\ncertificate = acm.Certificate.from_certificate_arn(self, \"Certificate\", arn)\n```\n\n## Sharing between Stacks\n\nTo share the certificate between stacks in the same CDK application, simply\npass the `Certificate` object between the stacks.\n\n## Metrics\n\nThe `DaysToExpiry` metric is available via the `metricDaysToExpiry` method for\nall certificates. This metric is emitted by AWS Certificates Manager once per\nday until the certificate has effectively expired.\n\nAn alarm can be created to determine whether a certificate is soon due for\nrenewal ussing the following code:\n\n```python\nimport aws_cdk.aws_cloudwatch as cloudwatch\n\n# my_hosted_zone: route53.HostedZone\n\ncertificate = acm.Certificate(self, \"Certificate\",\n    domain_name=\"hello.example.com\",\n    validation=acm.CertificateValidation.from_dns(my_hosted_zone)\n)\ncertificate.metric_days_to_expiry().create_alarm(self, \"Alarm\",\n    comparison_operator=cloudwatch.ComparisonOperator.LESS_THAN_THRESHOLD,\n    evaluation_periods=1,\n    threshold=45\n)\n```\n\n\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "The CDK Construct Library for AWS::CertificateManager",
    "version": "1.203.0",
    "project_urls": {
        "Homepage": "https://github.com/aws/aws-cdk",
        "Source": "https://github.com/aws/aws-cdk.git"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14a30b221b486eda4f5116b419392281ddacb78ea7a92cbd25117bab948ee198",
                "md5": "effe15f234de3d715e10ef43e200ba79",
                "sha256": "e6033fa0bde63bc7cb022f64c736104eecd732248165f2aae9532ee4e24b379b"
            },
            "downloads": -1,
            "filename": "aws_cdk.aws_certificatemanager-1.203.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "effe15f234de3d715e10ef43e200ba79",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "~=3.7",
            "size": 282894,
            "upload_time": "2023-05-31T22:53:15",
            "upload_time_iso_8601": "2023-05-31T22:53:15.867028Z",
            "url": "https://files.pythonhosted.org/packages/14/a3/0b221b486eda4f5116b419392281ddacb78ea7a92cbd25117bab948ee198/aws_cdk.aws_certificatemanager-1.203.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ef9caff54acef961ebdb5b9025331af65d456d1bbe44239bd8ad4b5757777c52",
                "md5": "0c6d3a33e42a74c155aed65b95c54c2e",
                "sha256": "83b1cf75e61ed3fbbb9fe22fd1edcb62a1934fde6d1fa19887af0b376e5d4887"
            },
            "downloads": -1,
            "filename": "aws-cdk.aws-certificatemanager-1.203.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0c6d3a33e42a74c155aed65b95c54c2e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "~=3.7",
            "size": 283428,
            "upload_time": "2023-05-31T23:01:06",
            "upload_time_iso_8601": "2023-05-31T23:01:06.498125Z",
            "url": "https://files.pythonhosted.org/packages/ef/9c/aff54acef961ebdb5b9025331af65d456d1bbe44239bd8ad4b5757777c52/aws-cdk.aws-certificatemanager-1.203.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-31 23:01:06",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aws",
    "github_project": "aws-cdk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "aws-cdk.aws-certificatemanager"
}
        
Elapsed time: 0.08800s