cloud_integration_tool
cloud_integration_tool creates a key in a Security World.
This key is first wrapped by a wrapping key and only then exported for use outside of the Security World.
cloud_integration_tool requires at least three parameters to be specified:
| provider | The name of the provider. | 
| keyName | The name of the Security World key.
An existing key can be specified.
This must have first been created by  | 
| wrapKey | The name of the cloud service provider’s wrapping key. | 
For AWS, Google Cloud Key Management (Google KMS), Google Compute Engine and Salesforce, the following parameter must also be specified:
| wrapAlg | The wrapping algorithm. | 
For Microsoft Azure, the following parameter must also be specified:
| —azure-kek | The key identifier of the Microsoft Key Exchange Key. | 
If multiple HSMs exist in the Security World you can, optionally, specify a specific HSM to be used.
For AWS, Google Compute Engine and Salesforce, the generated key is a 256-bit AES key. For Microsoft Azure and Google Cloud Key Management (Google KMS), you can choose from a list of available key types using a command line argument.
Run cloud_integration_tool
To run cloud_integration_tool on Windows:
"%NFAST_HOME%\python\python.exe" -m cloud_integration_toolTo run cloud_integration_tool on Linux:
/opt/nfast/python/bin/python -m cloud_integration_toolUsage and options
usage: cloud_integration_tool.py [-h] [--version] [-m MODULE] [-O CARDSET | -S SOFTCARD | -M] [-a AZUREKEK] [-k KEYTYPE] provider keyName wrapKey [wrapAlg]Help
Export a key from a Security World to be used outside, by a provider.
If the key does not exist, a new one is generated. By default, the key is module protected.
positional arguments:
provider    The provider for which to export the key.
            One of ['aws', 'google-compute-engine',
            'google-cloud-key-management', 'microsoft-azure', 'salesforce']
keyName     The name of the key to export/generate
wrapKey     The filename of the key to use for wrapping (DER encoded)
wrapAlg     The wrapping algorithm (required for aws, google-compute-engine,
            google-cloud-key-management or salesforce).
            For aws, google-compute-engine, or salesforce :
            One of ['RSAES_OAEP_SHA_256', 'RSAES_OAEP_SHA_1', 'RSAES_PKCS1_V1_5']
            For google-cloud-key-management :
            One of ['RSAES_OAEP_SHA_256', 'RSAES_OAEP_SHA_1']optional arguments:
-h, --help                  show this help message and exit
--version                   show program's version number and exit
-m MODULE, --module         MODULE
                            Specify a module to use
-O CARDSET, --ocs           CARDSET
                            Select OCS protection
-S SOFTCARD, --softcard     SOFTCARD
                            Select softcard protection
 -M, --module-protection    Select module protection (default)Microsoft Azure:
-a AZUREKEK, --azure-kek AZUREKEK   The full URL key identifier of the Microsoft Azure wrapping key.
                                    The format should be: https://<container-name>.<container-type>.azure.net/keys/<key-name>/<key-version> where <container-type> is either 'vault' or 'managedhsm'
                                    For example, https://myvault.vault.azure.net/keys/my-key/versionMicrosoft Azure and Google KMS:
-k KEYTYPE, --key-type KEYTYPE      The type of the target key.
                                    One of ['AES-256', 'EC-NISTP256', 'EC-NISTP384', 'EC-NISTP521', EC-SECP256K1', 'RSA-2048', 'RSA-3072', 'RSA-4096'] Will default to RSA-2048 if not supplied| The key type option represents the possible key types for both Microsoft Azure and Google KMS as there are common types. An error message will be printed if the type is not supported by the specified provider. Microsoft Azure supports: 'RSA-2048', 'RSA-3072', 'RSA-4096', 'EC-NISTP256', EC-NISTP384', 'EC-NISTP521', 'EC-SECP256K1' Google Cloud Key Management supports: 'RSA-2048', 'RSA-3072', 'RSA-4096', 'EC-NISTP256', 'EC-NISTP384', 'AES-256' | 
| The  AWS, Google Compute Engine, and Salesforce support: 'RSAES_OAEP_SHA_256', 'RSAES_OAEP_SHA_1', 'RSAES_PKCS1_V1_5' Google Cloud Key Management supports: 'RSAES_OAEP_SHA_256', 'RSAES_OAEP_SHA_1' |