Skip to content

GCP Certificate Authority Service - OPA Security Policies#369

Open
alrigi9 wants to merge 10 commits into
devfrom
gcp/service/certificate_authority_service
Open

GCP Certificate Authority Service - OPA Security Policies#369
alrigi9 wants to merge 10 commits into
devfrom
gcp/service/certificate_authority_service

Conversation

@alrigi9
Copy link
Copy Markdown

@alrigi9 alrigi9 commented May 5, 2026

Added 10 OPA security policies for GCP Certificate Authority Service.

Policies for google_privateca_ca_pool:

  • location, tier, allowed_key_types, publish_ca_cert, publish_crl, maximum_lifetime, allow_csr_based_issuance

Policies for google_privateca_certificate_authority:

  • key_spec_algorithm, deletion_protection

Each policy includes policy.rego, c.tf, nc.tf, config.tf, and input.json generated via terraform plan. Documentation has been completed.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ❌ CHECKS FAILED

⚠️ Your PR will not be reviewed until you fix all policy check failures below:

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: None - All passed']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 0
 Missing mentions: c, nc
Check failed: Unmentioned resources other than 'c' found: nc

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.type.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority type must be SELF_SIGNED or SUBORDINATE to ensure only approved CA configurations are deployed.', 'Non-Compliant Resources: None - All passed']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 0
 Missing mentions: c, nc
Check failed: Unmentioned resources other than 'c' found: nc

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ❌
  Resource: google_privateca_certificate_authority
    Policy: type - ❌
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


Failures:
Service: certificate_authority_service | Resource: google_privateca_ca_pool | Policy: maximum_lifetime
Unmentioned resources other than 'c' found: nc

Service: certificate_authority_service | Resource: google_privateca_certificate_authority | Policy: type
Unmentioned resources other than 'c' found: nc


@alrigi9 alrigi9 force-pushed the gcp/service/certificate_authority_service branch from 29aa2f7 to 26d0238 Compare May 5, 2026 11:07
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


2 similar comments
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


@alrigi9 alrigi9 force-pushed the gcp/service/certificate_authority_service branch from 9171a98 to 46aad96 Compare May 5, 2026 11:13
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


1 similar comment
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


@alrigi9 alrigi9 force-pushed the gcp/service/certificate_authority_service branch from ecbf772 to 32037ee Compare May 5, 2026 11:15
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


1 similar comment
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


@alrigi9 alrigi9 force-pushed the gcp/service/certificate_authority_service branch from 11cb58a to f5c415c Compare May 5, 2026 11:25
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


1 similar comment
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


@alrigi9 alrigi9 requested review from Shani1116 and paulJRCurtis May 5, 2026 11:32
- Fill in security_impact: false with rationale for all arguments in
  privateca_certificate, privateca_certificate_template,
  privateca_ca_pool_iam, and privateca_certificate_template_iam
- Regenerate all markdown files
- Revert .gitignore and range.rego to dev branch versions
@alrigi9 alrigi9 force-pushed the gcp/service/certificate_authority_service branch from 9aa9f2d to f2f2b9a Compare May 6, 2026 11:43
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

🔍 Policy Check Results

Status: ❌ CHECKS FAILED

⚠️ Your PR will not be reviewed until you fix all policy check failures below:

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
['Situation 1: CA Pool maximum certificate lifetime must not exceed 87600h (10 years) to limit exposure from long-lived certificates.', 'Non-Compliant Resources: None - All passed']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 0
 Missing mentions: c, nc
Check failed: Unmentioned resources other than 'c' found: nc

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ❌
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


Failures:
Service: certificate_authority_service | Resource: google_privateca_ca_pool | Policy: maximum_lifetime
Unmentioned resources other than 'c' found: nc


@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
["Situation 1: CA Pool maximum certificate lifetime must not be set to an excessively long duration. '999999999s' (~31.7 years) far exceeds the recommended maximum of '315360000s' (10 years) and unnecessarily extends exposure if a certificate is compromised.", 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate or its issuing CA is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


1 similar comment
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 6, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
["Situation 1: CA Pool maximum certificate lifetime must not be set to an excessively long duration. '999999999s' (~31.7 years) far exceeds the recommended maximum of '315360000s' (10 years) and unnecessarily extends exposure if a certificate is compromised.", 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate or its issuing CA is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


@Chhunly-TAING Chhunly-TAING self-assigned this May 7, 2026
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many extra attributes are not required. For example, if you check against the allowed_key_type, the c.tf should contain resource, name, location, tier, and allowed_key_type, something like ECDSA_P256.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, thank you

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you can remove publish_crl

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, thank you

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think publishing_options and labels can be removed.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, thank you

@alrigi9 alrigi9 force-pushed the gcp/service/certificate_authority_service branch from 305acc3 to c3434f0 Compare May 7, 2026 11:44
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
["Situation 1: CA Pool maximum certificate lifetime must not be set to an excessively long duration. '999999999s' (~31.7 years) far exceeds the recommended maximum of '315360000s' (10 years) and unnecessarily extends exposure if a certificate is compromised.", 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate or its issuing CA is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


Copy link
Copy Markdown
Contributor

@Chhunly-TAING Chhunly-TAING left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Alri,

Please ensure that you push the changes from your local computer. Additionally, please update your nc.tf to reflect the c.tf of each resource type.

Thanks,

@alrigi9 alrigi9 force-pushed the gcp/service/certificate_authority_service branch from 32591a3 to 9991217 Compare May 9, 2026 17:13
@alrigi9 alrigi9 requested a review from Chhunly-TAING May 9, 2026 17:14
@github-actions
Copy link
Copy Markdown

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
["Situation 1: CA Pool maximum certificate lifetime must not be set to an excessively long duration. '999999999s' (~31.7 years) far exceeds the recommended maximum of '315360000s' (10 years) and unnecessarily extends exposure if a certificate is compromised.", 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate or its issuing CA is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


@github-actions github-actions Bot added the CI-Approved PR approved by CI checks label May 11, 2026
@github-actions
Copy link
Copy Markdown

🔍 Policy Check Results

Status: ✅ All checks passed

Test Output

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.location.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must be deployed in an approved geographic region.', 'Non-Compliant Resources: nc', "Potential Remedies: Set the location field to an approved region such as 'australia-southeast1' or 'australia-southeast2'., Run 'gcloud privateca locations list' to see all available regions."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_ca_cert.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish CA certificates to allow clients to establish trust with the CA hierarchy.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_ca_cert to true., Publishing CA certificates is required for clients to validate the chain of trust.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.publish_crl.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must publish certificate revocation lists to enable revocation checking by relying parties.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set publishing_options.publish_crl to true., Publishing CRLs is required to support certificate revocation and prevent use of compromised certificates.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allow_csr_based_issuance.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must allow CSR-based certificate issuance to support standard certificate request workflows.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set issuance_policy.allowed_issuance_modes.allow_csr_based_issuance to true., CSR-based issuance is the standard method for certificate requests and must be enabled.']
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.allowed_key_types.message
Total CA Pool detected: 2 
['Situation 1: CA Pool issuance policy must restrict elliptic curve signing algorithms to OS-approved types only.', 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.allowed_key_types.elliptic_curve.signature_algorithm to 'ECDSA_P384' or 'ECDSA_P256'., Avoid 'EDDSA_25519' unless explicitly approved by the security team., Remove any unspecified or legacy key type entries."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.tier.message
Total CA Pool detected: 2 
['Situation 1: CA Pool must use the ENTERPRISE tier to enforce admin approval controls and audit logging for all certificate operations.', 'Non-Compliant Resources: nc', "Potential Remedies: Set tier to 'ENTERPRISE'., The DEVOPS tier lacks HSM-backed keys and granular audit logging required by organisational policy."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_ca_pool.maximum_lifetime.message
Total CA Pool detected: 2 
["Situation 1: CA Pool maximum certificate lifetime must not be set to an excessively long duration. '999999999s' (~31.7 years) far exceeds the recommended maximum of '315360000s' (10 years) and unnecessarily extends exposure if a certificate is compromised.", 'Non-Compliant Resources: nc', "Potential Remedies: Set issuance_policy.maximum_lifetime to a value no greater than '315360000s' (87600h / 10 years)., Shorter lifetimes reduce the window of exposure if a certificate or its issuing CA is compromised."]
Unique resource names in plan (google_privateca_ca_pool): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.deletion_protection.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority deletion protection must be enabled to prevent accidental or unauthorised deletion of the CA.', 'Non-Compliant Resources: nc', 'Potential Remedies: Set deletion_protection to true., Deletion protection prevents accidental destruction of a CA which would invalidate all certificates it has issued.']
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed

OPA check: data.terraform.gcp.security.certificate_authority_service.google_privateca_certificate_authority.key_spec_algorithm.message
Total Certificate Authority detected: 2 
['Situation 1: Certificate Authority key algorithm must use an approved cryptographic standard to enforce encryption compliance.', 'Non-Compliant Resources: nc', "Potential Remedies: Set key_spec.algorithm to one of the approved values: 'EC_P384_SHA384', 'RSA_PSS_4096_SHA256', or 'RSA_PKCS1_4096_SHA256'., Avoid weaker algorithms such as 'RSA_PSS_2048_SHA256' or 'RSA_PKCS1_2048_SHA256'., When using a Cloud KMS key, ensure the underlying key version uses an approved algorithm."]
Unique resource names in plan (google_privateca_certificate_authority): 2
Names mentioned in output: 1
 Missing mentions: c
Only compliant resources are unmentioned; ignoring
Check passed


Summary of policy checks:
Service: certificate_authority_service
  Resource: google_privateca_ca_pool
    Policy: location - ✅
    Policy: publish_ca_cert - ✅
    Policy: publish_crl - ✅
    Policy: allow_csr_based_issuance - ✅
    Policy: allowed_key_types - ✅
    Policy: tier - ✅
    Policy: maximum_lifetime - ✅
  Resource: google_privateca_certificate_authority
    Policy: deletion_protection - ✅
    Policy: key_spec_algorithm - ✅


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI-Approved PR approved by CI checks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants