Package com.pulumi.aws.acmpca
Class CertificateAuthority
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.acmpca.CertificateAuthority
-
public class CertificateAuthority extends com.pulumi.resources.CustomResourceProvides 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
### Short-lived certificatepackage 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()); } }
### Enable Certificate Revocation Listpackage 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()); } }
## 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 ```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()); } }
-
-
Constructor Summary
Constructors Constructor Description CertificateAuthority(java.lang.String name)CertificateAuthority(java.lang.String name, CertificateAuthorityArgs args)CertificateAuthority(java.lang.String name, CertificateAuthorityArgs args, com.pulumi.resources.CustomResourceOptions options)
-
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 CertificateAuthorityget(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()
-
-
-
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.
-
certificateAuthorityConfiguration
public com.pulumi.core.Output<CertificateAuthorityCertificateAuthorityConfiguration> certificateAuthorityConfiguration()
- Returns:
- Nested argument containing algorithms and certificate subject information. Defined below.
-
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.
-
-