Anjuna Policy Manager Runtime Configuration

The Anjuna SGX Runtime uses a configuration manifest that specifies the behavior of an application when running in an enclave. This page describes the configuration entries that are used to configure the Anjuna SGX Runtime to work with the Anjuna Policy Manager.

See the Configuration Reference for a full description of all supported entries in the Anjuna Runtime manifest.

Manifest reference

policy_manager

The configuration of the connection to the Anjuna Policy Manager. You must provide values for the socket, url, and ca_cert fields. These values tell the Anjuna SGX Runtime how to communicate with the correct Anjuna Policy Manager.

To ensure that the communication with the Anjuna Policy Manager is secure, it is recommended to use TLS (the url entry should start with https://). When using TLS, the ca_cert value should be the PEM-encoded public-key of the Anjuna Policy Manager, which allows the Anjuna SGX Runtime to validate the identity of the Anjuna Policy Manager server.

        policy_manager:
            socket: apm-broker
            url: https:://apm-server.test:8201
            ca_cert: |
            -----BEGIN CERTIFICATE-----
            MIIEczCCA1ugAwIBAgIBADANBgkqhkiG9w0BAQQFAD..AkGA1U
  • socket: the name of the abstract domain socket on which the Anjuna Policy Manager Broker listens for connections. It is recommended to use apm-broker in most cases, which is the default domain socket name that the Anjuna Policy Manager Broker uses.

  • url: the URL of the Policy Manager instance.

    Secure (HTTPS) connection to the Policy Manager requires pinning the PEM-encoded CA certificate ca_cert attesting the Policy Manager TLS certificate.

    keys

    defines encryption keys that are matched with references in encrypted_files entry. Keys are declared and referenced throughout the manifest by their id; the origin and path of each key is derived from the uri.

    keys:
      - id: db_key
        source: key_server
        uri: anjuna://keys/database_key

    Keys stored in the Anjuna Policy Manager have anjuna://<path> URIs. All keys are retrieved from the Anjuna Policy Manager by Anjuna SGX Runtime on startup.

    encrypted_files

    Files matching the patterns listed as encrypted_files are automatically encrypted by the Anjuna SGX Runtime when the application interacts with them.

    encrypted_files:
      - path: /path/to/file1
        key: file1_encryption_key
      - path: secret_data_*.db
        key: db_key

    For each pattern an encryption key should be referenced by its id; see the keys entry for additional information.