From ac8ca49ec18c16f72f8a18d209f57f11465a6f90 Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Thu, 30 Jan 2025 21:17:08 +0000 Subject: [PATCH 01/14] ab#67448 --- GcpCertManager/GcpCertManager.csproj | 10 +++---- integration-manifest.json | 39 +++++++++++----------------- 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/GcpCertManager/GcpCertManager.csproj b/GcpCertManager/GcpCertManager.csproj index e9e15de..6f4a636 100644 --- a/GcpCertManager/GcpCertManager.csproj +++ b/GcpCertManager/GcpCertManager.csproj @@ -1,10 +1,10 @@ - false - netcoreapp3.1 - Keyfactor.Extensions.Orchestrator.GcpCertManager + true + net6.0;net8.0 true + disable @@ -27,11 +27,9 @@ - - - PreserveNewest + Always diff --git a/integration-manifest.json b/integration-manifest.json index a3ea0b9..002a469 100644 --- a/integration-manifest.json +++ b/integration-manifest.json @@ -7,32 +7,15 @@ "support_level": "kf-supported", "link_github": true, "release_dir": "GcpCertManager/bin/release", + "release_project": "GcpCertManager/GcpCertManager.csproj", "description": "Google Certificate Manager Orchestrator for Add, Remove and Inventory.", "about": { "orchestrator": { "UOFramework": "10.4.1", "keyfactor_platform_version": "9.1.0", "pam_support": false, - "win": { - "supportsCreateStore": false, - "supportsDiscovery": false, - "supportsManagementAdd": true, - "supportsManagementRemove": true, - "supportsReenrollment": false, - "supportsInventory": true, - "platformSupport": "Unused" - }, - "linux": { - "supportsCreateStore": false, - "supportsDiscovery": false, - "supportsManagementAdd": true, - "supportsManagementRemove": true, - "supportsReenrollment": false, - "supportsInventory": true, - "platformSupport": "Unused" - }, - "store_types": { - "GcpCertMgr": { + "store_types": [ + { "Name": "GCP Certificate Manager", "ShortName": "GcpCertMgr", "Capability": "GcpCertMgr", @@ -62,20 +45,28 @@ "Type": "String", "DependsOn": "", "DefaultValue": "global", - "Required": true + "Required": true, + "IsPAMEligible": true, + "Description": "**global** is the default but could be another region based on the project." + }, { "Name": "ServiceAccountKey", "DisplayName": "Service Account Key File Path", "Type": "String", "DependsOn": "", - "DefaultValue": null, - "Required": false + "DefaultValue": "", + "Required": false, + "IsPAMEligible": false, + "Description": "The tional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud." + } ], + "ClientMachineDescription": "GCP Project ID for your account.", + "StorePathDescription": "This is not used and should be defaulted to n/a per the certificate store type set up.", "EntryParameters": [] } - } + ] } } } From 960b146d623d24a9435f649bf4a673cba55b3cd8 Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Fri, 31 Jan 2025 14:53:58 +0000 Subject: [PATCH 02/14] ab#67448 --- .../keyfactor-extension-update-catalog.yml | 34 ------- ...low.yml => keyfactor-starter-workflow.yml} | 3 +- docsource/content.md | 22 +++++ docsource/gcpcertmgr.md | 1 + .../images}/ApiAccessNeeded.gif | Bin .../images}/CertStoreSettings.gif | Bin .../images}/CertStoreType-Advanced.gif | Bin .../images}/CertStoreType-Basic.gif | Bin .../CertStoreType-CustomField-Location.gif | Bin ...toreType-CustomField-ServiceAccountKey.gif | Bin .../images}/CertStoreType-CustomFields.gif | Bin .../images}/CertStoreType-EntryParameters.gif | Bin .../images}/GoogleKeyJsonDownload.gif | Bin .../images}/ServiceAccountSettings.gif | Bin readme_source.md | 91 ------------------ 15 files changed, 25 insertions(+), 126 deletions(-) delete mode 100644 .github/workflows/keyfactor-extension-update-catalog.yml rename .github/workflows/{keyfactor-bootstrap-workflow.yml => keyfactor-starter-workflow.yml} (80%) create mode 100644 docsource/content.md create mode 100644 docsource/gcpcertmgr.md rename {images => docsource/images}/ApiAccessNeeded.gif (100%) rename {images => docsource/images}/CertStoreSettings.gif (100%) rename {images => docsource/images}/CertStoreType-Advanced.gif (100%) rename {images => docsource/images}/CertStoreType-Basic.gif (100%) rename {images => docsource/images}/CertStoreType-CustomField-Location.gif (100%) rename {images => docsource/images}/CertStoreType-CustomField-ServiceAccountKey.gif (100%) rename {images => docsource/images}/CertStoreType-CustomFields.gif (100%) rename {images => docsource/images}/CertStoreType-EntryParameters.gif (100%) rename {images => docsource/images}/GoogleKeyJsonDownload.gif (100%) rename {images => docsource/images}/ServiceAccountSettings.gif (100%) delete mode 100644 readme_source.md diff --git a/.github/workflows/keyfactor-extension-update-catalog.yml b/.github/workflows/keyfactor-extension-update-catalog.yml deleted file mode 100644 index ab7942e..0000000 --- a/.github/workflows/keyfactor-extension-update-catalog.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Generate Catalog Entry -on: [push, workflow_dispatch] - -jobs: - generate_entry: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@main - - - uses: actions/checkout@v2 - with: - token: ${{ secrets.SDK_SYNC_PAT }} - path: './catalog-temp/' - repository: 'Keyfactor/integrations-catalog' - - - uses: cuchi/jinja2-action@v1.2.0 - with: - template: ./catalog-temp/_integration.md.tpl - output_file: ${{ format('./catalog-temp/_integrations/{0}.md', github.event.repository.name) }} - data_file: integration-manifest.json - variables: | - repository= ${{ format('https://github.com/{0}', github.repository) }} - env: - GITHUB_TOKEN: ${{ secrets.SDK_SYNC_PAT }} - - - uses: EndBug/add-and-commit@v7 - with: - author_name: 'Keyfactor' - author_email: 'keyfactor@keyfactor.github.io' - branch: 'main' - message: ${{ format('Added the manifest for {0}', github.event.repository.name) }} - add: ${{ format('_integrations/{0}.md --force', github.event.repository.name) }} - cwd: './catalog-temp/' diff --git a/.github/workflows/keyfactor-bootstrap-workflow.yml b/.github/workflows/keyfactor-starter-workflow.yml similarity index 80% rename from .github/workflows/keyfactor-bootstrap-workflow.yml rename to .github/workflows/keyfactor-starter-workflow.yml index 6d8de53..a4649f2 100644 --- a/.github/workflows/keyfactor-bootstrap-workflow.yml +++ b/.github/workflows/keyfactor-starter-workflow.yml @@ -11,9 +11,10 @@ on: jobs: call-starter-workflow: - uses: keyfactor/actions/.github/workflows/starter.yml@v2 + uses: keyfactor/actions/.github/workflows/starter.yml@3.1.2 secrets: token: ${{ secrets.V2BUILDTOKEN}} APPROVE_README_PUSH: ${{ secrets.APPROVE_README_PUSH}} gpg_key: ${{ secrets.KF_GPG_PRIVATE_KEY }} gpg_pass: ${{ secrets.KF_GPG_PASSPHRASE }} + scan_token: ${{ secrets.SAST_TOKEN }} diff --git a/docsource/content.md b/docsource/content.md new file mode 100644 index 0000000..881faff --- /dev/null +++ b/docsource/content.md @@ -0,0 +1,22 @@ +## Overview + +The GCP Certificate Manager Orchestrator Extension remotely manages certificates on the Google Cloud Platform Certificate Manager Product + +This orchestrator extension implements three job types Inventory, Management Add, and Management Remove. Below are the steps necessary to configure this Orchestrator Extension. It supports adding certificates with private keys only. The GCP Certificate Manager Orchestrator Extension supports the replacement of unbound certificates as well as certificates bound to existing map entries, but it does **not** support specifying map entry bindings when adding new certificates. + + +## Requirements + +**Google Cloud Configuration** + +1. Read up on [Google Certificate Manager](https://cloud.google.com/certificate-manager/docs) and how it works. + +2. Either a Google Service Account is needed with the following permissions (Note: Workload Identity Management Should be used but at the time of the writing it was not available in the .net library yet), or the virtual machine running the Keyfactor Orchestrator Service must reside within Google Cloud. +![](images/ServiceAccountSettings.gif) + +3. The following Api Access is needed: +![](images/ApiAccessNeeded.gif) + +4. If authenticating via service account, download the Json Credential file as shown below: +![](images/GoogleKeyJsonDownload.gif) + diff --git a/docsource/gcpcertmgr.md b/docsource/gcpcertmgr.md new file mode 100644 index 0000000..ed37e8e --- /dev/null +++ b/docsource/gcpcertmgr.md @@ -0,0 +1 @@ +## Overview diff --git a/images/ApiAccessNeeded.gif b/docsource/images/ApiAccessNeeded.gif similarity index 100% rename from images/ApiAccessNeeded.gif rename to docsource/images/ApiAccessNeeded.gif diff --git a/images/CertStoreSettings.gif b/docsource/images/CertStoreSettings.gif similarity index 100% rename from images/CertStoreSettings.gif rename to docsource/images/CertStoreSettings.gif diff --git a/images/CertStoreType-Advanced.gif b/docsource/images/CertStoreType-Advanced.gif similarity index 100% rename from images/CertStoreType-Advanced.gif rename to docsource/images/CertStoreType-Advanced.gif diff --git a/images/CertStoreType-Basic.gif b/docsource/images/CertStoreType-Basic.gif similarity index 100% rename from images/CertStoreType-Basic.gif rename to docsource/images/CertStoreType-Basic.gif diff --git a/images/CertStoreType-CustomField-Location.gif b/docsource/images/CertStoreType-CustomField-Location.gif similarity index 100% rename from images/CertStoreType-CustomField-Location.gif rename to docsource/images/CertStoreType-CustomField-Location.gif diff --git a/images/CertStoreType-CustomField-ServiceAccountKey.gif b/docsource/images/CertStoreType-CustomField-ServiceAccountKey.gif similarity index 100% rename from images/CertStoreType-CustomField-ServiceAccountKey.gif rename to docsource/images/CertStoreType-CustomField-ServiceAccountKey.gif diff --git a/images/CertStoreType-CustomFields.gif b/docsource/images/CertStoreType-CustomFields.gif similarity index 100% rename from images/CertStoreType-CustomFields.gif rename to docsource/images/CertStoreType-CustomFields.gif diff --git a/images/CertStoreType-EntryParameters.gif b/docsource/images/CertStoreType-EntryParameters.gif similarity index 100% rename from images/CertStoreType-EntryParameters.gif rename to docsource/images/CertStoreType-EntryParameters.gif diff --git a/images/GoogleKeyJsonDownload.gif b/docsource/images/GoogleKeyJsonDownload.gif similarity index 100% rename from images/GoogleKeyJsonDownload.gif rename to docsource/images/GoogleKeyJsonDownload.gif diff --git a/images/ServiceAccountSettings.gif b/docsource/images/ServiceAccountSettings.gif similarity index 100% rename from images/ServiceAccountSettings.gif rename to docsource/images/ServiceAccountSettings.gif diff --git a/readme_source.md b/readme_source.md deleted file mode 100644 index b0d5003..0000000 --- a/readme_source.md +++ /dev/null @@ -1,91 +0,0 @@ -## Google Cloud Platform Certificate Manager - -**Overview** - -The GCP Certificate Manager Orchestrator Extension remotely manages certificates on the Google Cloud Platform Certificate Manager Product - -This orchestrator extension implements three job types – Inventory, Management Add, and Management Remove. Below are the steps necessary to configure this Orchestrator Extension. It supports adding certificates with private keys only. The GCP Certificate Manager Orchestrator Extension supports the replacement of unbound certificates as well as certificates bound to existing map entries, but it does **not** support specifying map entry bindings when adding new certificates. - - -**Google Cloud Configuration** - -1. Read up on [Google Certificate Manager](https://cloud.google.com/certificate-manager/docs) and how it works. - -2. Either a Google Service Account is needed with the following permissions (Note: Workload Identity Management Should be used but at the time of the writing it was not available in the .net library yet), or the virtual machine running the Keyfactor Orchestrator Service must reside within Google Cloud. -![](images/ServiceAccountSettings.gif) - -3. The following Api Access is needed: -![](images/ApiAccessNeeded.gif) - -4. If authenticating via service account, download the Json Credential file as shown below: -![](images/GoogleKeyJsonDownload.gif) - - -## Keyfactor Command Configuration - -**1. Create the New Certificate Store Type for the GCP Certificate Manager Orchestrator** - -In Keyfactor Command create a new Certificate Store Type similar to the one below: - -#### STORE TYPE CONFIGURATION -SETTING TAB | CONFIG ELEMENT | DESCRIPTION -------|-----------|------------------ -Basic |Name |Descriptive name for the Store Type. Example: Google Cloud Certificate Manager -Basic |Short Name |The name that identifies the registered functionality of the orchestrator. Must be GcpCertMgr -Basic |Custom Capability|Unchecked -Basic |Job Types |Inventory, Add, and Remove are the supported job types -Basic |Needs Server |Unchecked -Basic |Blueprint Allowed |Unchecked -Basic |Requires Store Password |Unchecked -Basic |Supports Entry Password |Unchecked -Advanced |Store Path Type| Fixed -Advanced |Store Path Type Value (the textbox that appears below Store Path Type when Store Path Type is set to "Fixed") |n/a -Advanced |Supports Custom Alias |Required -Advanced |Private Key Handling |Required -Advanced |PFX Password Style |Default -Custom Fields|Google Cloud Platform Project Location/Region|Name:Location, Display Name:Location, Type:String, Default Value:global, Required:False -Custom Fields|The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key |Name:Service Account Key File Name, Type:String, Default Value: (leave blank), Required:True -Entry Parameters|N/A| There are no Entry Parameters - -**Basic Settings:** - -![](images/CertStoreType-Basic.gif) - -**Advanced Settings:** - -![](images/CertStoreType-Advanced.gif) - -**Custom Fields:** - -![](images/CertStoreType-CustomFields.gif) -![](images/CertStoreType-CustomField-Location.gif) -![](images/CertStoreType-CustomField-ServiceAccountKey.gif) - -**Entry Params:** - -![](images/CertStoreType-EntryParameters.gif) - -**2. Register the GCP Certificate Manager Orchestrator with Keyfactor** -See Keyfactor InstallingKeyfactorOrchestrators.pdf Documentation. Get from your Keyfactor contact/representative. - -**3. Create a GCP Certificate Manager Certificate Store within Keyfactor Command** -In Keyfactor Command create a new Certificate Store similar to the one below - -![](images/CertStoreSettings.gif) - -#### STORE CONFIGURATION -CONFIG ELEMENT |DESCRIPTION -----------------|--------------- -Category |The type of certificate store to be configured. Select category based on the display name configured above "GCP Certificate Manager". -Container |This is a logical grouping of like stores. This configuration is optional and does not impact the functionality of the store. -Client Machine |Your GCP Project ID for your account. -Store Path |This is not used and should be defaulted to n/a per the certificate store type set up. -Orchestrator |This is the orchestrator server registered with the appropriate capabilities to manage this certificate store type. -Location|**global** is the default but could be another region based on the project. -Service Account Key File Name | The name of the file containing the GCP Service Account JSON formatted key previously downloaded. Keep this optional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud. -Update Server User Name |Click and select No Value. -Update Server Password |Click and select No Value. -Use SSL |This should be checked. -Inventory Schedule |The interval that the system will use to report on what certificates are currently in the store. - - From 7af67e0ebe55bbc41a58064b025cb590293a1fba Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Fri, 31 Jan 2025 15:34:22 +0000 Subject: [PATCH 03/14] ab#67448 --- docsource/content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/content.md b/docsource/content.md index 881faff..95497ed 100644 --- a/docsource/content.md +++ b/docsource/content.md @@ -1,6 +1,6 @@ ## Overview -The GCP Certificate Manager Orchestrator Extension remotely manages certificates on the Google Cloud Platform Certificate Manager Product +The GCP Certificate Manager Orchestrator Extension remotely manages certificates on the Google Cloud Platform Certificate Manager Product. This orchestrator extension implements three job types Inventory, Management Add, and Management Remove. Below are the steps necessary to configure this Orchestrator Extension. It supports adding certificates with private keys only. The GCP Certificate Manager Orchestrator Extension supports the replacement of unbound certificates as well as certificates bound to existing map entries, but it does **not** support specifying map entry bindings when adding new certificates. From 271baf8877da61cab18ba8dbcf942f68943efade Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Fri, 31 Jan 2025 16:27:27 +0000 Subject: [PATCH 04/14] ab#67448 --- docsource/content.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docsource/content.md b/docsource/content.md index 95497ed..d369b08 100644 --- a/docsource/content.md +++ b/docsource/content.md @@ -18,5 +18,4 @@ This orchestrator extension implements three job types ![](images/ApiAccessNeeded.gif) 4. If authenticating via service account, download the Json Credential file as shown below: -![](images/GoogleKeyJsonDownload.gif) - +![](images/GoogleKeyJsonDownload.gif) \ No newline at end of file From 0a5f778034f00c99157200f40d87f7115b54d8f1 Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Fri, 31 Jan 2025 16:37:58 +0000 Subject: [PATCH 05/14] ab#67448 --- docsource/content.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docsource/content.md b/docsource/content.md index d369b08..455a970 100644 --- a/docsource/content.md +++ b/docsource/content.md @@ -2,7 +2,7 @@ The GCP Certificate Manager Orchestrator Extension remotely manages certificates on the Google Cloud Platform Certificate Manager Product. -This orchestrator extension implements three job types Inventory, Management Add, and Management Remove. Below are the steps necessary to configure this Orchestrator Extension. It supports adding certificates with private keys only. The GCP Certificate Manager Orchestrator Extension supports the replacement of unbound certificates as well as certificates bound to existing map entries, but it does **not** support specifying map entry bindings when adding new certificates. +This orchestrator extension implements three job types - Inventory, Management Add, and Management Remove. Below are the steps necessary to configure this Orchestrator Extension. It supports adding certificates with private keys only. The GCP Certificate Manager Orchestrator Extension supports the replacement of unbound certificates as well as certificates bound to existing map entries, but it does **not** support specifying map entry bindings when adding new certificates. ## Requirements From 1127b0e5b4dc9642a8cc8352ab058eba2683d1d7 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Fri, 31 Jan 2025 16:38:49 +0000 Subject: [PATCH 06/14] Update generated docs --- README.md | 312 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 223 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index 436f000..54336f8 100644 --- a/README.md +++ b/README.md @@ -1,145 +1,279 @@ +

+ Google Cloud Provider Certificate Manager Universal Orchestrator Extension +

-# Google Cloud Provider Certificate Manager +

+ +Integration Status: production +Release +Issues +GitHub Downloads (all assets, all releases) +

-Google Certificate Manager Orchestrator for Add, Remove and Inventory. +

+ + + Support + + · + + Installation + + · + + License + + · + + Related Integrations + +

-#### Integration status: Production - Ready for use in production environments. +## Overview -## About the Keyfactor Universal Orchestrator Extension +The GCP Certificate Manager Orchestrator Extension remotely manages certificates on the Google Cloud Platform Certificate Manager Product. -This repository contains a Universal Orchestrator Extension which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications. +This orchestrator extension implements three job types - Inventory, Management Add, and Management Remove. Below are the steps necessary to configure this Orchestrator Extension. It supports adding certificates with private keys only. The GCP Certificate Manager Orchestrator Extension supports the replacement of unbound certificates as well as certificates bound to existing map entries, but it does **not** support specifying map entry bindings when adding new certificates. -The Universal Orchestrator is part of the Keyfactor software distribution and is available via the Keyfactor customer portal. For general instructions on installing Extensions, see the “Keyfactor Command Orchestrator Installation and Configuration Guide” section of the Keyfactor documentation. For configuration details of this specific Extension see below in this readme. -The Universal Orchestrator is the successor to the Windows Orchestrator. This Orchestrator Extension plugin only works with the Universal Orchestrator and does not work with the Windows Orchestrator. -## Support for Google Cloud Provider Certificate Manager +## Compatibility -Google Cloud Provider Certificate Manager is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket via the Keyfactor Support Portal at https://support.keyfactor.com +This integration is compatible with Keyfactor Universal Orchestrator version 10.4.1 and later. -###### To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab. +## Support +The Google Cloud Provider Certificate Manager Universal Orchestrator extension is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket with your Keyfactor representative. If you have a support issue, please open a support ticket via the Keyfactor Support Portal at https://support.keyfactor.com. + +> To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab. ---- +## Requirements & Prerequisites +Before installing the Google Cloud Provider Certificate Manager Universal Orchestrator extension, we recommend that you install [kfutil](https://github.com/Keyfactor/kfutil). Kfutil is a command-line tool that simplifies the process of creating store types, installing extensions, and instantiating certificate stores in Keyfactor Command. ---- +**Google Cloud Configuration** +1. Read up on [Google Certificate Manager](https://cloud.google.com/certificate-manager/docs) and how it works. -## Keyfactor Version Supported +2. Either a Google Service Account is needed with the following permissions (Note: Workload Identity Management Should be used but at the time of the writing it was not available in the .net library yet), or the virtual machine running the Keyfactor Orchestrator Service must reside within Google Cloud. +![](images/ServiceAccountSettings.gif) -The minimum version of the Keyfactor Universal Orchestrator Framework needed to run this version of the extension is 10.4.1 -## Platform Specific Notes +3. The following Api Access is needed: +![](images/ApiAccessNeeded.gif) -The Keyfactor Universal Orchestrator may be installed on either Windows or Linux based platforms. The certificate operations supported by a capability may vary based what platform the capability is installed on. The table below indicates what capabilities are supported based on which platform the encompassing Universal Orchestrator is running. -| Operation | Win | Linux | -|-----|-----|------| -|Supports Management Add|✓ |✓ | -|Supports Management Remove|✓ |✓ | -|Supports Create Store| | | -|Supports Discovery| | | -|Supports Reenrollment| | | -|Supports Inventory|✓ |✓ | +4. If authenticating via service account, download the Json Credential file as shown below: +![](images/GoogleKeyJsonDownload.gif) +## Create the GcpCertMgr Certificate Store Type +To use the Google Cloud Provider Certificate Manager Universal Orchestrator extension, you **must** create the GcpCertMgr Certificate Store Type. This only needs to happen _once_ per Keyfactor Command instance. ---- +* **Create GcpCertMgr using kfutil**: -## Google Cloud Platform Certificate Manager + ```shell + # GCP Certificate Manager + kfutil store-types create GcpCertMgr + ``` -**Overview** +* **Create GcpCertMgr manually in the Command UI**: +
Create GcpCertMgr manually in the Command UI -The GCP Certificate Manager Orchestrator Extension remotely manages certificates on the Google Cloud Platform Certificate Manager Product + Create a store type called `GcpCertMgr` with the attributes in the tables below: -This orchestrator extension implements three job types – Inventory, Management Add, and Management Remove. Below are the steps necessary to configure this Orchestrator Extension. It supports adding certificates with private keys only. The GCP Certificate Manager Orchestrator Extension supports the replacement of unbound certificates as well as certificates bound to existing map entries, but it does **not** support specifying map entry bindings when adding new certificates. + #### Basic Tab + | Attribute | Value | Description | + | --------- | ----- | ----- | + | Name | GCP Certificate Manager | Display name for the store type (may be customized) | + | Short Name | GcpCertMgr | Short display name for the store type | + | Capability | GcpCertMgr | Store type name orchestrator will register with. Check the box to allow entry of value | + | Supports Add | ✅ Checked | Check the box. Indicates that the Store Type supports Management Add | + | Supports Remove | ✅ Checked | Check the box. Indicates that the Store Type supports Management Remove | + | Supports Discovery | ✅ Checked | Check the box. Indicates that the Store Type supports Discovery | + | Supports Reenrollment | 🔲 Unchecked | Indicates that the Store Type supports Reenrollment | + | Supports Create | ✅ Checked | Check the box. Indicates that the Store Type supports store creation | + | Needs Server | 🔲 Unchecked | Determines if a target server name is required when creating store | + | Blueprint Allowed | 🔲 Unchecked | Determines if store type may be included in an Orchestrator blueprint | + | Uses PowerShell | 🔲 Unchecked | Determines if underlying implementation is PowerShell | + | Requires Store Password | 🔲 Unchecked | Enables users to optionally specify a store password when defining a Certificate Store. | + | Supports Entry Password | 🔲 Unchecked | Determines if an individual entry within a store can have a password. | + The Basic tab should look like this: -**Google Cloud Configuration** + ![GcpCertMgr Basic Tab](docsource/images/GcpCertMgr-basic-store-type-dialog.png) -1. Read up on [Google Certificate Manager](https://cloud.google.com/certificate-manager/docs) and how it works. + #### Advanced Tab + | Attribute | Value | Description | + | --------- | ----- | ----- | + | Supports Custom Alias | Required | Determines if an individual entry within a store can have a custom Alias. | + | Private Key Handling | Required | This determines if Keyfactor can send the private key associated with a certificate to the store. Required because IIS certificates without private keys would be invalid. | + | PFX Password Style | Default | 'Default' - PFX password is randomly generated, 'Custom' - PFX password may be specified when the enrollment job is created (Requires the Allow Custom Password application setting to be enabled.) | -2. Either a Google Service Account is needed with the following permissions (Note: Workload Identity Management Should be used but at the time of the writing it was not available in the .net library yet), or the virtual machine running the Keyfactor Orchestrator Service must reside within Google Cloud. -![](images/ServiceAccountSettings.gif) + The Advanced tab should look like this: -3. The following Api Access is needed: -![](images/ApiAccessNeeded.gif) + ![GcpCertMgr Advanced Tab](docsource/images/GcpCertMgr-advanced-store-type-dialog.png) -4. If authenticating via service account, download the Json Credential file as shown below: -![](images/GoogleKeyJsonDownload.gif) + #### Custom Fields Tab + Custom fields operate at the certificate store level and are used to control how the orchestrator connects to the remote target server containing the certificate store to be managed. The following custom fields should be added to the store type: + + | Name | Display Name | Description | Type | Default Value/Options | Required | + | ---- | ------------ | ---- | --------------------- | -------- | ----------- | + | Location | Location | **global** is the default but could be another region based on the project. | String | global | ✅ Checked | + | ServiceAccountKey | Service Account Key File Path | The tional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud. | String | | 🔲 Unchecked | + + The Custom Fields tab should look like this: + + ![GcpCertMgr Custom Fields Tab](docsource/images/GcpCertMgr-custom-fields-store-type-dialog.png) + + + +
+ +## Installation + +1. **Download the latest Google Cloud Provider Certificate Manager Universal Orchestrator extension from GitHub.** + + Navigate to the [Google Cloud Provider Certificate Manager Universal Orchestrator extension GitHub version page](https://github.com/Keyfactor/gcp-certmanager-orchestrator/releases/latest). Refer to the compatibility matrix below to determine whether the `net6.0` or `net8.0` asset should be downloaded. Then, click the corresponding asset to download the zip archive. + | Universal Orchestrator Version | Latest .NET version installed on the Universal Orchestrator server | `rollForward` condition in `Orchestrator.runtimeconfig.json` | `gcp-certmanager-orchestrator` .NET version to download | + | --------- | ----------- | ----------- | ----------- | + | Older than `11.0.0` | | | `net6.0` | + | Between `11.0.0` and `11.5.1` (inclusive) | `net6.0` | | `net6.0` | + | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `Disable` | `net6.0` | + | Between `11.0.0` and `11.5.1` (inclusive) | `net8.0` | `LatestMajor` | `net8.0` | + | `11.6` _and_ newer | `net8.0` | | `net8.0` | + + Unzip the archive containing extension assemblies to a known location. + + > **Note** If you don't see an asset with a corresponding .NET version, you should always assume that it was compiled for `net6.0`. + +2. **Locate the Universal Orchestrator extensions directory.** + + * **Default on Windows** - `C:\Program Files\Keyfactor\Keyfactor Orchestrator\extensions` + * **Default on Linux** - `/opt/keyfactor/orchestrator/extensions` + +3. **Create a new directory for the Google Cloud Provider Certificate Manager Universal Orchestrator extension inside the extensions directory.** + + Create a new directory called `gcp-certmanager-orchestrator`. + > The directory name does not need to match any names used elsewhere; it just has to be unique within the extensions directory. + +4. **Copy the contents of the downloaded and unzipped assemblies from __step 2__ to the `gcp-certmanager-orchestrator` directory.** + +5. **Restart the Universal Orchestrator service.** + + Refer to [Starting/Restarting the Universal Orchestrator service](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/StarttheService.htm). + + +6. **(optional) PAM Integration** + + The Google Cloud Provider Certificate Manager Universal Orchestrator extension is compatible with all supported Keyfactor PAM extensions to resolve PAM-eligible secrets. PAM extensions running on Universal Orchestrators enable secure retrieval of secrets from a connected PAM provider. + + To configure a PAM provider, [reference the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam) to select an extension, and follow the associated instructions to install it on the Universal Orchestrator (remote). + + +> The above installation steps can be supplimented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/CustomExtensions.htm?Highlight=extensions). + + + +## Defining Certificate Stores + + + +* **Manually with the Command UI** + +
Create Certificate Stores manually in the UI + + 1. **Navigate to the _Certificate Stores_ page in Keyfactor Command.** + + Log into Keyfactor Command, toggle the _Locations_ dropdown, and click _Certificate Stores_. + + 2. **Add a Certificate Store.** + + Click the Add button to add a new Certificate Store. Use the table below to populate the **Attributes** in the **Add** form. + | Attribute | Description | + | --------- | ----------- | + | Category | Select "GCP Certificate Manager" or the customized certificate store name from the previous step. | + | Container | Optional container to associate certificate store with. | + | Client Machine | GCP Project ID for your account. | + | Store Path | This is not used and should be defaulted to n/a per the certificate store type set up. | + | Orchestrator | Select an approved orchestrator capable of managing `GcpCertMgr` certificates. Specifically, one with the `GcpCertMgr` capability. | + | Location | **global** is the default but could be another region based on the project. | + | ServiceAccountKey | The tional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud. | + + + + +
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator + + If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. + | Attribute | Description | + | --------- | ----------- | + | Location | **global** is the default but could be another region based on the project. | + + + Please refer to the **Universal Orchestrator (remote)** usage section ([PAM providers on the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam)) for your selected PAM provider for instructions on how to load attributes orchestrator-side. + > Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. +
+ -## Keyfactor Command Configuration +
-**1. Create the New Certificate Store Type for the GCP Certificate Manager Orchestrator** +* **Using kfutil** + +
Create Certificate Stores with kfutil + + 1. **Generate a CSV template for the GcpCertMgr certificate store** -In Keyfactor Command create a new Certificate Store Type similar to the one below: + ```shell + kfutil stores import generate-template --store-type-name GcpCertMgr --outpath GcpCertMgr.csv + ``` + 2. **Populate the generated CSV file** -#### STORE TYPE CONFIGURATION -SETTING TAB | CONFIG ELEMENT | DESCRIPTION -------|-----------|------------------ -Basic |Name |Descriptive name for the Store Type. Example: Google Cloud Certificate Manager -Basic |Short Name |The name that identifies the registered functionality of the orchestrator. Must be GcpCertMgr -Basic |Custom Capability|Unchecked -Basic |Job Types |Inventory, Add, and Remove are the supported job types -Basic |Needs Server |Unchecked -Basic |Blueprint Allowed |Unchecked -Basic |Requires Store Password |Unchecked -Basic |Supports Entry Password |Unchecked -Advanced |Store Path Type| Fixed -Advanced |Store Path Type Value (the textbox that appears below Store Path Type when Store Path Type is set to "Fixed") |n/a -Advanced |Supports Custom Alias |Required -Advanced |Private Key Handling |Required -Advanced |PFX Password Style |Default -Custom Fields|Google Cloud Platform Project Location/Region|Name:Location, Display Name:Location, Type:String, Default Value:global, Required:False -Custom Fields|The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key |Name:Service Account Key File Name, Type:String, Default Value: (leave blank), Required:True -Entry Parameters|N/A| There are no Entry Parameters + Open the CSV file, and reference the table below to populate parameters for each **Attribute**. + | Attribute | Description | + | --------- | ----------- | + | Category | Select "GCP Certificate Manager" or the customized certificate store name from the previous step. | + | Container | Optional container to associate certificate store with. | + | Client Machine | GCP Project ID for your account. | + | Store Path | This is not used and should be defaulted to n/a per the certificate store type set up. | + | Orchestrator | Select an approved orchestrator capable of managing `GcpCertMgr` certificates. Specifically, one with the `GcpCertMgr` capability. | + | Location | **global** is the default but could be another region based on the project. | + | ServiceAccountKey | The tional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud. | -**Basic Settings:** -![](images/CertStoreType-Basic.gif) + -**Advanced Settings:** +
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator -![](images/CertStoreType-Advanced.gif) + If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. + | Attribute | Description | + | --------- | ----------- | + | Location | **global** is the default but could be another region based on the project. | -**Custom Fields:** -![](images/CertStoreType-CustomFields.gif) -![](images/CertStoreType-CustomField-Location.gif) -![](images/CertStoreType-CustomField-ServiceAccountKey.gif) + > Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. +
+ -**Entry Params:** + 3. **Import the CSV file to create the certificate stores** -![](images/CertStoreType-EntryParameters.gif) + ```shell + kfutil stores import csv --store-type-name GcpCertMgr --file GcpCertMgr.csv + ``` +
-**2. Register the GCP Certificate Manager Orchestrator with Keyfactor** -See Keyfactor InstallingKeyfactorOrchestrators.pdf Documentation. Get from your Keyfactor contact/representative. +> The content in this section can be supplimented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/ReferenceGuide/Certificate%20Stores.htm?Highlight=certificate%20store). -**3. Create a GCP Certificate Manager Certificate Store within Keyfactor Command** -In Keyfactor Command create a new Certificate Store similar to the one below -![](images/CertStoreSettings.gif) -#### STORE CONFIGURATION -CONFIG ELEMENT |DESCRIPTION -----------------|--------------- -Category |The type of certificate store to be configured. Select category based on the display name configured above "GCP Certificate Manager". -Container |This is a logical grouping of like stores. This configuration is optional and does not impact the functionality of the store. -Client Machine |Your GCP Project ID for your account. -Store Path |This is not used and should be defaulted to n/a per the certificate store type set up. -Orchestrator |This is the orchestrator server registered with the appropriate capabilities to manage this certificate store type. -Location|**global** is the default but could be another region based on the project. -Service Account Key File Name | The name of the file containing the GCP Service Account JSON formatted key previously downloaded. Keep this optional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud. -Update Server User Name |Click and select No Value. -Update Server Password |Click and select No Value. -Use SSL |This should be checked. -Inventory Schedule |The interval that the system will use to report on what certificates are currently in the store. +## License -When creating cert store type manually, that store property names and entry parameter names are case sensitive +Apache License 2.0, see [LICENSE](LICENSE). +## Related Integrations +See all [Keyfactor Universal Orchestrator extensions](https://github.com/orgs/Keyfactor/repositories?q=orchestrator). \ No newline at end of file From 14fec0d57014efe9303321b54569e8b1e3187ae5 Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Fri, 31 Jan 2025 19:10:43 +0000 Subject: [PATCH 07/14] ab#67448 --- docsource/content.md | 6 +++--- docsource/images/CertStoreSettings.gif | Bin 18732 -> 0 bytes docsource/images/CertStoreType-Advanced.gif | Bin 16683 -> 0 bytes docsource/images/CertStoreType-Basic.gif | Bin 23303 -> 0 bytes .../CertStoreType-CustomField-Location.gif | Bin 8717 -> 0 bytes ...tStoreType-CustomField-ServiceAccountKey.gif | Bin 8624 -> 0 bytes docsource/images/CertStoreType-CustomFields.gif | Bin 19975 -> 0 bytes .../images/CertStoreType-EntryParameters.gif | Bin 12434 -> 0 bytes 8 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 docsource/images/CertStoreSettings.gif delete mode 100644 docsource/images/CertStoreType-Advanced.gif delete mode 100644 docsource/images/CertStoreType-Basic.gif delete mode 100644 docsource/images/CertStoreType-CustomField-Location.gif delete mode 100644 docsource/images/CertStoreType-CustomField-ServiceAccountKey.gif delete mode 100644 docsource/images/CertStoreType-CustomFields.gif delete mode 100644 docsource/images/CertStoreType-EntryParameters.gif diff --git a/docsource/content.md b/docsource/content.md index 455a970..b1e78e5 100644 --- a/docsource/content.md +++ b/docsource/content.md @@ -12,10 +12,10 @@ This orchestrator extension implements three job types - Inventory, Management A 1. Read up on [Google Certificate Manager](https://cloud.google.com/certificate-manager/docs) and how it works. 2. Either a Google Service Account is needed with the following permissions (Note: Workload Identity Management Should be used but at the time of the writing it was not available in the .net library yet), or the virtual machine running the Keyfactor Orchestrator Service must reside within Google Cloud. -![](images/ServiceAccountSettings.gif) +![](docsource/images/ServiceAccountSettings.gif) 3. The following Api Access is needed: -![](images/ApiAccessNeeded.gif) +![](docsource/images/ApiAccessNeeded.gif) 4. If authenticating via service account, download the Json Credential file as shown below: -![](images/GoogleKeyJsonDownload.gif) \ No newline at end of file +![](docsource/images/GoogleKeyJsonDownload.gif) \ No newline at end of file diff --git a/docsource/images/CertStoreSettings.gif b/docsource/images/CertStoreSettings.gif deleted file mode 100644 index 7347fb85f35f3b56373767a0776c67c6d33a3019..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18732 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 bU-{0LzV)^5ees)L{q9$9aN;l70s;U#nmQew diff --git a/docsource/images/CertStoreType-Advanced.gif b/docsource/images/CertStoreType-Advanced.gif deleted file mode 100644 index 9e1f0626409c731113db048050bcd1d87589b999..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16683 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 diff --git a/docsource/images/CertStoreType-CustomField-Location.gif b/docsource/images/CertStoreType-CustomField-Location.gif deleted file mode 100644 index 136eb2f3cd5bf6f69c765e616d68c0b1808b6a85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8717 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 z%0A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 diff --git a/docsource/images/CertStoreType-EntryParameters.gif b/docsource/images/CertStoreType-EntryParameters.gif deleted file mode 100644 index 919c83c9970dd15aa0842fb945a8fac085e9d64f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12434 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 Q-g)c2H{WhgV@^N-JFtE%^8f$< From 3ce35aa525bc997a241eb9dcdaa7acd61f512cec Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Fri, 31 Jan 2025 19:11:39 +0000 Subject: [PATCH 08/14] Update generated docs --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 54336f8..ead7e09 100644 --- a/README.md +++ b/README.md @@ -56,13 +56,13 @@ Before installing the Google Cloud Provider Certificate Manager Universal Orches 1. Read up on [Google Certificate Manager](https://cloud.google.com/certificate-manager/docs) and how it works. 2. Either a Google Service Account is needed with the following permissions (Note: Workload Identity Management Should be used but at the time of the writing it was not available in the .net library yet), or the virtual machine running the Keyfactor Orchestrator Service must reside within Google Cloud. -![](images/ServiceAccountSettings.gif) +![](docsource/images/ServiceAccountSettings.gif) 3. The following Api Access is needed: -![](images/ApiAccessNeeded.gif) +![](docsource/images/ApiAccessNeeded.gif) 4. If authenticating via service account, download the Json Credential file as shown below: -![](images/GoogleKeyJsonDownload.gif) +![](docsource/images/GoogleKeyJsonDownload.gif) ## Create the GcpCertMgr Certificate Store Type From 978eb6f4659206c6a2d5a0e7a3082cdedabb36e9 Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Fri, 31 Jan 2025 19:28:06 +0000 Subject: [PATCH 09/14] ab#67448 --- GcpCertManager/Client/GcpCertificateManagerClient.cs | 8 +++++++- GcpCertManager/Jobs/Inventory.cs | 6 ++++++ GcpCertManager/Jobs/Management.cs | 8 +++++++- GcpCertManager/StoreProperties.cs | 8 +++++++- integration-manifest.json | 2 +- 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/GcpCertManager/Client/GcpCertificateManagerClient.cs b/GcpCertManager/Client/GcpCertificateManagerClient.cs index 5155204..b41febf 100644 --- a/GcpCertManager/Client/GcpCertificateManagerClient.cs +++ b/GcpCertManager/Client/GcpCertificateManagerClient.cs @@ -1,4 +1,10 @@ -using System.IO; +// Copyright 2025 Keyfactor +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions +// and limitations under the License. +using System.IO; using System.Reflection; using Google.Apis.Auth.OAuth2; using Google.Apis.CertificateManager.v1; diff --git a/GcpCertManager/Jobs/Inventory.cs b/GcpCertManager/Jobs/Inventory.cs index 64ca851..b3d6165 100644 --- a/GcpCertManager/Jobs/Inventory.cs +++ b/GcpCertManager/Jobs/Inventory.cs @@ -1,3 +1,9 @@ +// Copyright 2025 Keyfactor +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions +// and limitations under the License. using System; using System.Collections.Generic; using System.Linq; diff --git a/GcpCertManager/Jobs/Management.cs b/GcpCertManager/Jobs/Management.cs index c08cb83..29da573 100644 --- a/GcpCertManager/Jobs/Management.cs +++ b/GcpCertManager/Jobs/Management.cs @@ -1,4 +1,10 @@ -using System; +// Copyright 2025 Keyfactor +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions +// and limitations under the License. +using System; using System.Collections.Generic; using System.Drawing; using System.IO; diff --git a/GcpCertManager/StoreProperties.cs b/GcpCertManager/StoreProperties.cs index d905a53..95384f8 100644 --- a/GcpCertManager/StoreProperties.cs +++ b/GcpCertManager/StoreProperties.cs @@ -1,4 +1,10 @@ -using System.ComponentModel; +// Copyright 2025 Keyfactor +// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. +// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions +// and limitations under the License. +using System.ComponentModel; using Newtonsoft.Json; namespace Keyfactor.Extensions.Orchestrator.GcpCertManager diff --git a/integration-manifest.json b/integration-manifest.json index 002a469..9d1db09 100644 --- a/integration-manifest.json +++ b/integration-manifest.json @@ -58,7 +58,7 @@ "DefaultValue": "", "Required": false, "IsPAMEligible": false, - "Description": "The tional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud." + "Description": "The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key." } ], From 8dbb0dcb46978420cbc56999b813ddb79f253a6e Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Fri, 31 Jan 2025 19:29:02 +0000 Subject: [PATCH 10/14] Update generated docs --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ead7e09..2791e07 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ To use the Google Cloud Provider Certificate Manager Universal Orchestrator exte | Name | Display Name | Description | Type | Default Value/Options | Required | | ---- | ------------ | ---- | --------------------- | -------- | ----------- | | Location | Location | **global** is the default but could be another region based on the project. | String | global | ✅ Checked | - | ServiceAccountKey | Service Account Key File Path | The tional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud. | String | | 🔲 Unchecked | + | ServiceAccountKey | Service Account Key File Path | The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key. | String | | 🔲 Unchecked | The Custom Fields tab should look like this: @@ -199,7 +199,7 @@ To use the Google Cloud Provider Certificate Manager Universal Orchestrator exte | Store Path | This is not used and should be defaulted to n/a per the certificate store type set up. | | Orchestrator | Select an approved orchestrator capable of managing `GcpCertMgr` certificates. Specifically, one with the `GcpCertMgr` capability. | | Location | **global** is the default but could be another region based on the project. | - | ServiceAccountKey | The tional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud. | + | ServiceAccountKey | The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key. | @@ -240,7 +240,7 @@ To use the Google Cloud Provider Certificate Manager Universal Orchestrator exte | Store Path | This is not used and should be defaulted to n/a per the certificate store type set up. | | Orchestrator | Select an approved orchestrator capable of managing `GcpCertMgr` certificates. Specifically, one with the `GcpCertMgr` capability. | | Location | **global** is the default but could be another region based on the project. | - | ServiceAccountKey | The tional field blank if the Keyfactor Orchestrator Service is running from an authenticated VM within Google Cloud. | + | ServiceAccountKey | The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key. | From c91d7744c9e20c543a558549d676a3b3aa1f0e08 Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Fri, 31 Jan 2025 20:02:35 +0000 Subject: [PATCH 11/14] ab#67448 --- integration-manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration-manifest.json b/integration-manifest.json index 9d1db09..62c090c 100644 --- a/integration-manifest.json +++ b/integration-manifest.json @@ -46,8 +46,8 @@ "DependsOn": "", "DefaultValue": "global", "Required": true, - "IsPAMEligible": true, - "Description": "**global** is the default but could be another region based on the project." + "IsPAMEligible": false, + "Description": "The GCP region used for this Certificate Manager instance. **global** is the default but could be another region based on the project." }, { From 8d009286ed1a70d81f53e3d14b5afee02d113441 Mon Sep 17 00:00:00 2001 From: Keyfactor Date: Fri, 31 Jan 2025 20:03:36 +0000 Subject: [PATCH 12/14] Update generated docs --- README.md | 38 +++----------------------------------- 1 file changed, 3 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 2791e07..0ca4400 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ To use the Google Cloud Provider Certificate Manager Universal Orchestrator exte | Name | Display Name | Description | Type | Default Value/Options | Required | | ---- | ------------ | ---- | --------------------- | -------- | ----------- | - | Location | Location | **global** is the default but could be another region based on the project. | String | global | ✅ Checked | + | Location | Location | The GCP region used for this Certificate Manager instance. **global** is the default but could be another region based on the project. | String | global | ✅ Checked | | ServiceAccountKey | Service Account Key File Path | The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key. | String | | 🔲 Unchecked | The Custom Fields tab should look like this: @@ -165,12 +165,6 @@ To use the Google Cloud Provider Certificate Manager Universal Orchestrator exte Refer to [Starting/Restarting the Universal Orchestrator service](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/StarttheService.htm). -6. **(optional) PAM Integration** - - The Google Cloud Provider Certificate Manager Universal Orchestrator extension is compatible with all supported Keyfactor PAM extensions to resolve PAM-eligible secrets. PAM extensions running on Universal Orchestrators enable secure retrieval of secrets from a connected PAM provider. - - To configure a PAM provider, [reference the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam) to select an extension, and follow the associated instructions to install it on the Universal Orchestrator (remote). - > The above installation steps can be supplimented by the [official Command documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/InstallingAgents/NetCoreOrchestrator/CustomExtensions.htm?Highlight=extensions). @@ -198,26 +192,12 @@ To use the Google Cloud Provider Certificate Manager Universal Orchestrator exte | Client Machine | GCP Project ID for your account. | | Store Path | This is not used and should be defaulted to n/a per the certificate store type set up. | | Orchestrator | Select an approved orchestrator capable of managing `GcpCertMgr` certificates. Specifically, one with the `GcpCertMgr` capability. | - | Location | **global** is the default but could be another region based on the project. | + | Location | The GCP region used for this Certificate Manager instance. **global** is the default but could be another region based on the project. | | ServiceAccountKey | The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key. | -
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator - - If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. - | Attribute | Description | - | --------- | ----------- | - | Location | **global** is the default but could be another region based on the project. | - - - Please refer to the **Universal Orchestrator (remote)** usage section ([PAM providers on the Keyfactor Integration Catalog](https://keyfactor.github.io/integrations-catalog/content/pam)) for your selected PAM provider for instructions on how to load attributes orchestrator-side. - - > Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. -
- - * **Using kfutil** @@ -239,24 +219,12 @@ To use the Google Cloud Provider Certificate Manager Universal Orchestrator exte | Client Machine | GCP Project ID for your account. | | Store Path | This is not used and should be defaulted to n/a per the certificate store type set up. | | Orchestrator | Select an approved orchestrator capable of managing `GcpCertMgr` certificates. Specifically, one with the `GcpCertMgr` capability. | - | Location | **global** is the default but could be another region based on the project. | + | Location | The GCP region used for this Certificate Manager instance. **global** is the default but could be another region based on the project. | | ServiceAccountKey | The file name of the Google Cloud Service Account Key File installed in the same folder as the orchestrator extension. Empty if the orchestrator server resides in GCP and you are not using a service account key. | -
Attributes eligible for retrieval by a PAM Provider on the Universal Orchestrator - - If a PAM provider was installed _on the Universal Orchestrator_ in the [Installation](#Installation) section, the following parameters can be configured for retrieval _on the Universal Orchestrator_. - | Attribute | Description | - | --------- | ----------- | - | Location | **global** is the default but could be another region based on the project. | - - - > Any secret can be rendered by a PAM provider _installed on the Keyfactor Command server_. The above parameters are specific to attributes that can be fetched by an installed PAM provider running on the Universal Orchestrator server itself. -
- - 3. **Import the CSV file to create the certificate stores** ```shell From 2377d906ed240da3b29ef9d4ae7bbc59311625ed Mon Sep 17 00:00:00 2001 From: Lee Fine Date: Mon, 3 Feb 2025 14:40:52 +0000 Subject: [PATCH 13/14] ab#67448 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09d4bf6..f760407 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,6 @@ +v1.1.0 +- Implemented dual build for .net6/8 +- Converted README to use doctool + v1.0.2 - Initial Public Version \ No newline at end of file From a5a09985172ecc57c1db6310e95f3d1c5945c8e9 Mon Sep 17 00:00:00 2001 From: Hayden Roszell Date: Tue, 4 Feb 2025 11:08:08 -0800 Subject: [PATCH 14/14] chore(docs): Regenerate screenshots Signed-off-by: Hayden Roszell --- .../GcpCertMgr-advanced-store-type-dialog.png | Bin 0 -> 41666 bytes .../GcpCertMgr-basic-store-type-dialog.png | Bin 0 -> 54089 bytes ...ertMgr-custom-fields-store-type-dialog.png | Bin 0 -> 32262 bytes integration-manifest.json | 134 +++++++++--------- 4 files changed, 66 insertions(+), 68 deletions(-) create mode 100644 docsource/images/GcpCertMgr-advanced-store-type-dialog.png create mode 100644 docsource/images/GcpCertMgr-basic-store-type-dialog.png create mode 100644 docsource/images/GcpCertMgr-custom-fields-store-type-dialog.png diff --git a/docsource/images/GcpCertMgr-advanced-store-type-dialog.png b/docsource/images/GcpCertMgr-advanced-store-type-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..534ecb221e9b4c7efda1bab9b8be958425776ed1 GIT binary patch literal 41666 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
|@`VdKG?0}m(t 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 AvH$=8 literal 0 HcmV?d00001 diff --git a/docsource/images/GcpCertMgr-custom-fields-store-type-dialog.png b/docsource/images/GcpCertMgr-custom-fields-store-type-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..9cde5e9a2f4bbcbd28606bdb182566936f66af18 GIT binary patch literal 32262 zcmc$`1yGjZ_cr)SH%NDbNFx%`(v2bw(%m6l(jcvb2uMqJcQ?}A4bmW;d%ynwznyRA z`*vq%cV~7+XY}QHpXYwgea^YAbDeV&_D)d>9fcSL0)e2*NQ)~&ATY7uZv_$p_#_f1 z=mP{o36T+htKyb&u;i+NJF|>vg9QCOj-73U471G9 zesjVm@t~>^^H`pYynKmZd9ObbzKHc_YBF(;CHREmoreH+gB;fM@7H$%m?Jd&W@f`f z2X%VGDNezO-@XkxI-aGQpqZE`V~HYB1!A4iqM|yTxC`*|&5O~#`po|34Z5yws)3o= z!m=|>AoQA%^80&HT6+4KKYx0CG+o}=aN)k|2=j$Qk3@J&&EiCr2nlWlLsaC-+jgHaH)}@ zKMP%E5Xb)av*!1qwEuqQk@a6UI(v~A7Z(^25kWs_Vrojw!BMVI^V0fT^}l<^xI8By z2w~B#5uwD=@Bd1-JDLBXc}w}jhjO0>k31DdX00kDA0MCM`6JX7?0hwgcgh-3;~kE9 zsy{AE6axs2@|e}rtI9};t81DI|Eh5GP?o;SWKcrU3?n7}t>@_r))tc>D=XWPz@nY5 zoc~T$HRxi0hK7zVN3s3~#?<3hg0exxAuaX(ztbN5N3NRv3~(C7D6IuH67W>@2fu8DHYfST^P6?%HZr*h z=zd!$hh=aVkyzPGopLL>ZAfhAOnQMEM%4%7{gqo<9pokNHiYRjZ)6+Kp1pP+MSKBiL}q1E4p=>+hq-Xy-ArNYZ1K~)96XG+J+9qv3{B{Y|-zYu{D zF{y_Magkd69h>ZMe`l2!_wuJqDsbMIoz&!Hk_2W=7$YO2qw0BUn zrEkYuKPOT+M$Oa=F)&*%bA7PW_ZFj@i$J%*RZFV}=@Dhnwh3wHy zfZY0^D~4CAt$hk5I2dG*Ae|t@T8fMc9lxnYz236KhJcYBs;##e0uL$rwiYlSII|Mq zPfQIXGIX@Ua1b*`t=^fT5$&&RFZB89d`YX(lf3N|xHsAoM0u#xsA|AC*c&FcC;_2!o4Ww~`O0+3 z(KLdJi;Cn0hImF+t>Cr~J2v@8(miz5;2wnUuNx^KyIx6_ueFS6w>B1I3GbU|(BijH z>Ri6+A4KR93JhbWdXd(jMJuC}d5kHszkVgsCzXYT^D~0XN^vc+n+EH4|D%8`3mn8+ z!vmKjfxMd}TxvB^f+hy*4k>N;1_Q_Rs%QTgqcf?Kr~J>xh7Q?w)GQk0`uJ(PJtu%g zjqMgWVfvRwgAX4;1B6nz5m$YrcVj%vQ>X2iKNFSy_fdF@n76*E0bCE^S*4uAmOQEA z18L-SvadYq$sT{e$(}zI2+@GWBJ3hxQu z<}MFzt+jh?oXzz)&QCPRcj9r1fS%h7sn%hgKGm08*B8C}8jaUj33fj)z&78Xs4`R$ zvpm+D(CY|TU+_H@XN;LYcfO%YXf4MSdvUwb9M9H1Kdh50ubP7$av8WW_;iPNT