1.0 Deploy the Workflow - Manual
After a Workflow is approved by all the users, the Applications will have the Workflow Application Configurations provided to them. This configuration has information such as which Datasets or Apps they are connected to, any user-provided files or values to be provided within an enclave, and so on.
We provide a configuration to applications using an identifier passed as an input argument.
This identifier is a sha256sum of items that you need to secure from the configuration and workflow.
Fortanix CCM will also embed this identifier inside the certificates it issues so that it is clear what configuration is used for the KMS to allow access to credentials.
It embeds this inside a subject alternate name:
<identifier>.<mrenclave>.id.fortanix.cloud
With the identifier above, the KMS that stores the dataset credentials will authenticate and give credentials only to applications that present a proper certificate. When the application starts, CCM will keep track of which applications are allowed to access which configurations using the identifier.
To view the Application Identifier:
Click the application in the approved Workflow graph.
Figure 1: View the app identifier
In the detailed view of the Workflow application, copy the value of Runtime configuration hash. This ID is used to run the application.
Figure 2: Copy the app identifier
To run the application, execute the following command depending on the type of node agent attestation:
For the node attestation type Enhanced Privacy ID (EPID)/Data Center Attestation Primitives (DCAP), use the command:docker run --privileged -d -v /var/run/aesmd:/var/run/aesmd --volume /dev:/dev -p 8085:8080 --net="host" --env NODE_AGENT_BASE_URL="http://:9092/v1" --env APPCONFIG_ID="de7f0cd0a293e8a9a38877d853dd0d94f7b67a09c48c7a520327de4ef87aa9f5" docker.io/fortanix:patient-csp-v1
Where,
APPCONFIG_ID
is the Application identifier.NOTE
Use your own inputs for Node IP, Port, and Converted Image in the above format. The information in the example above is just a sample.
Add the following flag along with the command to get more details:
-e ENCLAVEOS_LOG_LEVEL=debug
- to get debug log-p 7622:80 -p 8038:443
- to map the application's custom port to80
or443
When the App Owner starts the application with the application config identifier:
Applications will request an attestation certificate from the NodeAgent with the identifier as part of the report data.
The application requests an application certificate from NodeAgent.
The CCM verifies that the application is allowed to access the configuration.
The application requests from CCM its configuration by providing its certificate provisioned above as an authentication mechanism.
The CCM does certificate authentication, extracts the application identifier from the certificate, and sends back the configuration corresponding to that identifier.
The application verifies and applies the configuration hash.
The application gets the credentials from URLs in the config.
The application authenticates and reads/writes data from the datasets.