Class: AWSCDK::CloudFront::CfnDistribution::ViewerCertificateProperty
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::CloudFront::CfnDistribution::ViewerCertificateProperty
- Defined in:
- cloud_front/cfn_distribution.rb
Overview
A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.
If the distribution doesn't use Aliases (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net —set CloudFrontDefaultCertificate to true and leave all other fields empty.
If the distribution uses Aliases (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:
- Which viewers the distribution accepts HTTPS connections from: only viewers that support server name indication (SNI) (recommended), or all viewers including those that don't support SNI.
- To accept HTTPS connections from only viewers that support SNI, set
SSLSupportMethodtosni-only. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name isSslSupportMethod. Note the different capitalization.) - To accept HTTPS connections from all viewers, including those that don't support SNI, set
SSLSupportMethodtovip. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name isSslSupportMethod. Note the different capitalization.) - The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for
MinimumProtocolVersion. For more information, see Security Policy in the Amazon CloudFront Developer Guide . - The location of the SSL/TLS certificate, Certificate Manager (ACM) (recommended) or AWS Identity and Access Management (IAM) . You specify the location by setting a value in one of the following fields (not both):
ACMCertificateArn(In CloudFormation, this field name isAcmCertificateArn. Note the different capitalization.)IAMCertificateId(In CloudFormation, this field name isIamCertificateId. Note the different capitalization.)
All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ViewerProtocolPolicy in the CacheBehavior or DefaultCacheBehavior . To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use CustomOriginConfig .
For more information, see Using HTTPS with CloudFront and Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide .
Instance Attribute Summary collapse
-
#acm_certificate_arn ⇒ String?
readonly
In CloudFormation, this field name is
AcmCertificateArn. -
#cloud_front_default_certificate ⇒ Boolean, ...
readonly
If the distribution uses the CloudFront domain name such as
d111111abcdef8.cloudfront.net, set this field totrue. -
#iam_certificate_id ⇒ String?
readonly
This field only supports standard distributions.
-
#minimum_protocol_version ⇒ String?
readonly
If the distribution uses
Aliases(alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. -
#ssl_support_method ⇒ String?
readonly
In CloudFormation, this field name is
SslSupportMethod.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(acm_certificate_arn: nil, cloud_front_default_certificate: nil, iam_certificate_id: nil, minimum_protocol_version: nil, ssl_support_method: nil) ⇒ ViewerCertificateProperty
constructor
A new instance of ViewerCertificateProperty.
- #to_jsii ⇒ Object
Constructor Details
#initialize(acm_certificate_arn: nil, cloud_front_default_certificate: nil, iam_certificate_id: nil, minimum_protocol_version: nil, ssl_support_method: nil) ⇒ ViewerCertificateProperty
Returns a new instance of ViewerCertificateProperty.
3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 |
# File 'cloud_front/cfn_distribution.rb', line 3383 def initialize(acm_certificate_arn: nil, cloud_front_default_certificate: nil, iam_certificate_id: nil, minimum_protocol_version: nil, ssl_support_method: nil) @acm_certificate_arn = acm_certificate_arn Jsii::Type.check_type(@acm_certificate_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "acmCertificateArn") unless @acm_certificate_arn.nil? @cloud_front_default_certificate = cloud_front_default_certificate Jsii::Type.check_type(@cloud_front_default_certificate, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "cloudFrontDefaultCertificate") unless @cloud_front_default_certificate.nil? @iam_certificate_id = iam_certificate_id Jsii::Type.check_type(@iam_certificate_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "iamCertificateId") unless @iam_certificate_id.nil? @minimum_protocol_version = minimum_protocol_version Jsii::Type.check_type(@minimum_protocol_version, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "minimumProtocolVersion") unless @minimum_protocol_version.nil? @ssl_support_method = ssl_support_method Jsii::Type.check_type(@ssl_support_method, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "sslSupportMethod") unless @ssl_support_method.nil? end |
Instance Attribute Details
#acm_certificate_arn ⇒ String? (readonly)
In CloudFormation, this field name is
AcmCertificateArn. Note the different capitalization.
If the distribution uses Aliases (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in Certificate Manager (ACM) , provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region ( us-east-1 ).
If you specify an ACM certificate ARN, you must also specify values for MinimumProtocolVersion and SSLSupportMethod . (In CloudFormation, the field name is SslSupportMethod . Note the different capitalization.)
3404 3405 3406 |
# File 'cloud_front/cfn_distribution.rb', line 3404 def acm_certificate_arn @acm_certificate_arn end |
#cloud_front_default_certificate ⇒ Boolean, ... (readonly)
If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net , set this field to true .
If the distribution uses Aliases (alternate domain names or CNAMEs), omit this field and specify values for the following fields:
AcmCertificateArnorIamCertificateId(specify a value for one, not both)MinimumProtocolVersionSslSupportMethod
3415 3416 3417 |
# File 'cloud_front/cfn_distribution.rb', line 3415 def cloud_front_default_certificate @cloud_front_default_certificate end |
#iam_certificate_id ⇒ String? (readonly)
This field only supports standard distributions.
You can't specify this field for multi-tenant distributions. For more information, see Unsupported features for SaaS Manager for Amazon CloudFront in the Amazon CloudFront Developer Guide . > In CloudFormation, this field name is IamCertificateId . Note the different capitalization.
If the distribution uses Aliases (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in AWS Identity and Access Management (IAM) , provide the ID of the IAM certificate.
If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion and SSLSupportMethod . (In CloudFormation, the field name is SslSupportMethod . Note the different capitalization.)
3426 3427 3428 |
# File 'cloud_front/cfn_distribution.rb', line 3426 def iam_certificate_id @iam_certificate_id end |
#minimum_protocol_version ⇒ String? (readonly)
If the distribution uses Aliases (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers.
The security policy determines two settings:
- The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
- The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
For more information, see Security Policy and Supported Protocols and Ciphers Between Viewers and CloudFront in the Amazon CloudFront Developer Guide .
On the CloudFront console, this setting is called Security Policy .
When you're using SNI only (you set SSLSupportMethod to sni-only ), you must specify TLSv1 or higher. (In CloudFormation, the field name is SslSupportMethod . Note the different capitalization.)
If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net (you set CloudFrontDefaultCertificate to true ), CloudFront automatically sets the security policy to TLSv1 regardless of the value that you set here.
3444 3445 3446 |
# File 'cloud_front/cfn_distribution.rb', line 3444 def minimum_protocol_version @minimum_protocol_version end |
#ssl_support_method ⇒ String? (readonly)
In CloudFormation, this field name is
SslSupportMethod. Note the different capitalization.
If the distribution uses Aliases (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.
sni-only– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI) . This is recommended. Most browsers and clients support SNI.vip– The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.static-ip- Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the Support Center .
If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net , don't set a value for this field.
3457 3458 3459 |
# File 'cloud_front/cfn_distribution.rb', line 3457 def ssl_support_method @ssl_support_method end |
Class Method Details
.jsii_properties ⇒ Object
3459 3460 3461 3462 3463 3464 3465 3466 3467 |
# File 'cloud_front/cfn_distribution.rb', line 3459 def self.jsii_properties { :acm_certificate_arn => "acmCertificateArn", :cloud_front_default_certificate => "cloudFrontDefaultCertificate", :iam_certificate_id => "iamCertificateId", :minimum_protocol_version => "minimumProtocolVersion", :ssl_support_method => "sslSupportMethod", } end |
Instance Method Details
#to_jsii ⇒ Object
3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 |
# File 'cloud_front/cfn_distribution.rb', line 3469 def to_jsii result = {} result.merge!({ "acmCertificateArn" => @acm_certificate_arn, "cloudFrontDefaultCertificate" => @cloud_front_default_certificate, "iamCertificateId" => @iam_certificate_id, "minimumProtocolVersion" => @minimum_protocol_version, "sslSupportMethod" => @ssl_support_method, }) result.compact end |