Class CertificateAuthority


  • public class CertificateAuthority
    extends com.pulumi.resources.CustomResource
    Provides a resource to manage AWS Certificate Manager Private Certificate Authorities (ACM PCA Certificate Authorities). > **NOTE:** Creating this resource will leave the certificate authority in a `PENDING_CERTIFICATE` status, which means it cannot yet issue certificates. To complete this setup, you must fully sign the certificate authority CSR available in the `certificateSigningRequest` attribute. The `aws.acmpca.CertificateAuthorityCertificate` resource can be used for this purpose. ## Example Usage ### Basic
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.acmpca.CertificateAuthority;
     import com.pulumi.aws.acmpca.CertificateAuthorityArgs;
     import com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationArgs;
     import com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new CertificateAuthority("example", CertificateAuthorityArgs.builder()
                 .certificateAuthorityConfiguration(CertificateAuthorityCertificateAuthorityConfigurationArgs.builder()
                     .subject(CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs.builder()
                         .commonName("example.com")
                         .build())
                     .keyAlgorithm("RSA_4096")
                     .signingAlgorithm("SHA512WITHRSA")
                     .build())
                 .permanentDeletionTimeInDays(7)
                 .build());
     
         }
     }
     
     
    ### Short-lived certificate
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.acmpca.CertificateAuthority;
     import com.pulumi.aws.acmpca.CertificateAuthorityArgs;
     import com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationArgs;
     import com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new CertificateAuthority("example", CertificateAuthorityArgs.builder()
                 .certificateAuthorityConfiguration(CertificateAuthorityCertificateAuthorityConfigurationArgs.builder()
                     .subject(CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs.builder()
                         .commonName("example.com")
                         .build())
                     .keyAlgorithm("RSA_4096")
                     .signingAlgorithm("SHA512WITHRSA")
                     .build())
                 .usageMode("SHORT_LIVED_CERTIFICATE")
                 .build());
     
         }
     }
     
     
    ### Enable Certificate Revocation List
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.s3.Bucket;
     import com.pulumi.aws.s3.BucketArgs;
     import com.pulumi.aws.iam.IamFunctions;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs;
     import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs;
     import com.pulumi.aws.s3.BucketPolicy;
     import com.pulumi.aws.s3.BucketPolicyArgs;
     import com.pulumi.aws.acmpca.CertificateAuthority;
     import com.pulumi.aws.acmpca.CertificateAuthorityArgs;
     import com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationArgs;
     import com.pulumi.aws.acmpca.inputs.CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs;
     import com.pulumi.aws.acmpca.inputs.CertificateAuthorityRevocationConfigurationArgs;
     import com.pulumi.aws.acmpca.inputs.CertificateAuthorityRevocationConfigurationCrlConfigurationArgs;
     import com.pulumi.resources.CustomResourceOptions;
     import java.util.ArrayList;
     import java.util.Arrays;
     import java.util.Map;
     import java.io.File;
     import java.nio.file.Files;
     import java.nio.file.Paths;
     
     public class App {
         public static void main(String[] args) {
             Pulumi.run(App::stack);
         }
     
         public static void stack(Context ctx) {
             var example = new Bucket("example", BucketArgs.builder()
                 .bucket("example")
                 .forceDestroy(true)
                 .build());
     
             final var acmpcaBucketAccess = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                 .statements(GetPolicyDocumentStatementArgs.builder()
                     .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                         .identifiers("acm-pca.amazonaws.com")
                         .type("Service")
                         .build())
                     .actions(                
                         "s3:GetBucketAcl",
                         "s3:GetBucketLocation",
                         "s3:PutObject",
                         "s3:PutObjectAcl")
                     .resources(                
                         example.arn(),
                         example.arn().applyValue(_arn -> String.format("%s/*", _arn)))
                     .build())
                 .build());
     
             var exampleBucketPolicy = new BucketPolicy("exampleBucketPolicy", BucketPolicyArgs.builder()
                 .bucket(example.id())
                 .policy(acmpcaBucketAccess.applyValue(_acmpcaBucketAccess -> _acmpcaBucketAccess.json()))
                 .build());
     
             var exampleCertificateAuthority = new CertificateAuthority("exampleCertificateAuthority", CertificateAuthorityArgs.builder()
                 .certificateAuthorityConfiguration(CertificateAuthorityCertificateAuthorityConfigurationArgs.builder()
                     .subject(CertificateAuthorityCertificateAuthorityConfigurationSubjectArgs.builder()
                         .commonName("example.com")
                         .build())
                     .keyAlgorithm("RSA_4096")
                     .signingAlgorithm("SHA512WITHRSA")
                     .build())
                 .revocationConfiguration(CertificateAuthorityRevocationConfigurationArgs.builder()
                     .crlConfiguration(CertificateAuthorityRevocationConfigurationCrlConfigurationArgs.builder()
                         .customCname("crl.example.com")
                         .enabled(true)
                         .expirationInDays(7)
                         .s3BucketName(example.id())
                         .s3ObjectAcl("BUCKET_OWNER_FULL_CONTROL")
                         .build())
                     .build())
                 .build(), CustomResourceOptions.builder()
                     .dependsOn(exampleBucketPolicy)
                     .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required - `arn` (String) ARN of the ACM PCA certificate authority. Using `pulumi import`, import `aws.acmpca.CertificateAuthority` using the certificate authority ARN. For example: ```sh $ pulumi import aws:acmpca/certificateAuthority:CertificateAuthority example arn:aws:acm-pca:us-east-1:123456789012:certificate-authority/12345678-1234-1234-1234-123456789012 ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.lang.String> arn()  
      com.pulumi.core.Output<java.lang.String> certificate()  
      com.pulumi.core.Output<CertificateAuthorityCertificateAuthorityConfiguration> certificateAuthorityConfiguration()  
      com.pulumi.core.Output<java.lang.String> certificateChain()  
      com.pulumi.core.Output<java.lang.String> certificateSigningRequest()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enabled()  
      static CertificateAuthority get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, CertificateAuthorityState state, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.lang.String> keyStorageSecurityStandard()  
      com.pulumi.core.Output<java.lang.String> notAfter()  
      com.pulumi.core.Output<java.lang.String> notBefore()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> permanentDeletionTimeInDays()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<java.util.Optional<CertificateAuthorityRevocationConfiguration>> revocationConfiguration()  
      com.pulumi.core.Output<java.lang.String> serial()  
      com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()  
      com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> type()  
      com.pulumi.core.Output<java.lang.String> usageMode()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CertificateAuthority

        public CertificateAuthority​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • CertificateAuthority

        public CertificateAuthority​(java.lang.String name,
                                    CertificateAuthorityArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • CertificateAuthority

        public CertificateAuthority​(java.lang.String name,
                                    CertificateAuthorityArgs args,
                                    @Nullable
                                    com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        ARN of the certificate authority.
      • certificate

        public com.pulumi.core.Output<java.lang.String> certificate()
        Returns:
        Base64-encoded certificate authority (CA) certificate. Only available after the certificate authority certificate has been imported.
      • certificateChain

        public com.pulumi.core.Output<java.lang.String> certificateChain()
        Returns:
        Base64-encoded certificate chain that includes any intermediate certificates and chains up to root on-premises certificate that you used to sign your private CA certificate. The chain does not include your private CA certificate. Only available after the certificate authority certificate has been imported.
      • certificateSigningRequest

        public com.pulumi.core.Output<java.lang.String> certificateSigningRequest()
        Returns:
        The base64 PEM-encoded certificate signing request (CSR) for your private CA certificate.
      • enabled

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> enabled()
        Returns:
        Whether the certificate authority is enabled or disabled. Defaults to `true`. Can only be disabled if the CA is in an `ACTIVE` state.
      • keyStorageSecurityStandard

        public com.pulumi.core.Output<java.lang.String> keyStorageSecurityStandard()
        Returns:
        Cryptographic key management compliance standard used for handling CA keys. Defaults to `FIPS_140_2_LEVEL_3_OR_HIGHER`. Valid values: `FIPS_140_2_LEVEL_3_OR_HIGHER` and `FIPS_140_2_LEVEL_2_OR_HIGHER`. Supported standard for each region can be found in the [Storage and security compliance of AWS Private CA private keys Documentation](https://docs.aws.amazon.com/privateca/latest/userguide/data-protection.html#private-keys).
      • notAfter

        public com.pulumi.core.Output<java.lang.String> notAfter()
        Returns:
        Date and time after which the certificate authority is not valid. Only available after the certificate authority certificate has been imported.
      • notBefore

        public com.pulumi.core.Output<java.lang.String> notBefore()
        Returns:
        Date and time before which the certificate authority is not valid. Only available after the certificate authority certificate has been imported.
      • permanentDeletionTimeInDays

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> permanentDeletionTimeInDays()
        Returns:
        Number of days to make a CA restorable after it has been deleted, must be between 7 to 30 days, with default to 30 days.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • revocationConfiguration

        public com.pulumi.core.Output<java.util.Optional<CertificateAuthorityRevocationConfiguration>> revocationConfiguration()
        Returns:
        Nested argument containing revocation configuration. Defined below.
      • serial

        public com.pulumi.core.Output<java.lang.String> serial()
        Returns:
        Serial number of the certificate authority. Only available after the certificate authority certificate has been imported.
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        Key-value map of user-defined tags that are attached to the certificate authority. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
      • type

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> type()
        Returns:
        Type of the certificate authority. Defaults to `SUBORDINATE`. Valid values: `ROOT` and `SUBORDINATE`.
      • usageMode

        public com.pulumi.core.Output<java.lang.String> usageMode()
        Returns:
        Specifies whether the CA issues general-purpose certificates that typically require a revocation mechanism, or short-lived certificates that may optionally omit revocation because they expire quickly. Short-lived certificate validity is limited to seven days. Defaults to `GENERAL_PURPOSE`. Valid values: `GENERAL_PURPOSE` and `SHORT_LIVED_CERTIFICATE`.
      • get

        public static CertificateAuthority get​(java.lang.String name,
                                               com.pulumi.core.Output<java.lang.String> id,
                                               @Nullable
                                               CertificateAuthorityState state,
                                               @Nullable
                                               com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.