You can deploy Aembit edge components using multiple methods. Each method provides similar functionality, but the steps differ.
This page describes how to use the Aembit Edge Command-Line Interface (CLI) in GitHub Actions.
Configure an Access Policy
Section titled “Configure an Access Policy”To configure your Aembit Tenant: Aembit Tenants serve as isolated, dedicated environments within Aembit that provide complete separation of administrative domains and security configurations.Learn more to support GitHub Actions as a Client Workload: Client Workloads represent software applications, scripts, or automated processes that initiate access requests to Server Workloads, operating autonomously without direct user interaction.Learn more:
-
Configure your Client Workload using one or more of these Client Identification options.
-
Configure your Trust Provider: Trust Providers validate Client Workload identities through workload attestation, verifying identity claims from the workload's runtime environment rather than relying on pre-shared secrets.Learn more type to GitHub Trust Provider to identify and attest the Aembit Agent runtime environment.
-
Configure your Credential Provider with the credential values for the Continuous Integration (CI) runtime environment.
-
Configure your Server Workload with the service endpoint host and port for the CI runtime environment.
-
Configure your Access Policy: Access Policies define, enforce, and audit access between Client and Server Workloads by cryptographically verifying workload identity and contextual factors rather than relying on static secrets.Learn more referencing the Aembit entities from steps 3 - 6, and then click Save & Activate.
Configure for use with a custom Resource Set
Section titled “Configure for use with a custom Resource Set”To configure GitHub Actions to work with a custom Resource Set:
-
Open your existing GitHub Actions configuration file.
-
Go to your Aembit Tenant, click the Trust Providers link in the left sidebar and locate your GitLab Trust Provider in the Custom Resource Set you are working with.
-
In your GitHub Actions configuration file, go to the
envsection for the action step and add both theAEMBIT_CLIENT_IDandAEMBIT_RESOURCE_SET_IDvalues. The following example shows theAEMBIT_CLIENT_IDandAEMBIT_RESOURCE_SET_IDvalues in thestepssection:Example GitHub Actions job jobs:sample:steps:- name: Sampleenv:AEMBIT_CLIENT_ID: <_your Client ID_>AEMBIT_RESOURCE_SET_ID: <_your Resource Set ID_> -
Verify both the
AEMBIT_CLIENT_IDandAEMBIT_RESOURCE_SET_IDenvironment variables match the values in your Resource Set and Trust Provider in your Aembit Tenant. -
Commit your changes to your GitHub Actions configuration file.
Deploy the CI script
Section titled “Deploy the CI script”-
Retrieve the latest Aembit Agent release from the Agent Releases page.
-
Include the Aembit Agent within your CI environment. Bundle it within an image, or retrieve it dynamically as appropriate for your workload.
-
Configure your CI job to call the Aembit Agent with the proper parameters. The following example shows a GitHub Actions configuration.
Example GitHub Actions job # The id-token permissions value must be set to write for retrieval of the GitHub OpenID Connect (OIDC) Identity Tokenpermissions:id-token: write...jobs:sample:steps:- name: Sampleenv:# Copy the Client ID value from your Trust Provider to this valueAEMBIT_CLIENT_ID: <_your Client ID_># Add AEMBIT_RESOURCE_SET_ID if using a Custom Resource Set# Example: AEMBIT_RESOURCE_SET_ID: 585677c8-9g2a-7zx8-604b-e02e64af11e4# AEMBIT_RESOURCE_SET_ID: <_your Resource Set ID_>run: |# Use 'eval' explicitly to ensure the output (for example, 'export TOKEN=...') is executed as shell commands.# The default environment variable name is TOKEN. Override with the --credential-names option.eval $(./aembit credentials get --server-workload-host oauth.sample.com --server-workload-port 443)echo "Open Authorization (OAuth) Token $TOKEN"
Verify Aembit Agent
Section titled “Verify Aembit Agent”To verify the Aembit Agent release, follow these steps using the gpg and shasum
commands. Select the tab that matches your operating system and architecture:
Download the Aembit Agent release version from the Aembit Agent Releases page along with the matching checksum files.
Alternatively, you can download these files using
curl, swapping out the highlighted release version with the version you're verifying:Terminal window curl -O https://releases.aembit.io/agent/1.24.3328/linux/amd64/aembit_agent_cli_linux_amd64_1.24.3328.tar.gzcurl -O https://releases.aembit.io/agent/1.24.3328/aembit_agent_cli_linux_amd64_1.24.3328.tar.gz.sha256curl -O https://releases.aembit.io/agent/1.24.3328/aembit_agent_cli_linux_amd64_1.24.3328.tar.gz.sha256.sigImport Aembit's public GPG key from Keybase into
gpg:Terminal window curl "https://keybase.io/aembit/pgp_keys.asc" | gpg --importVerify Aembit Agent's checksum integrity and authenticity with
gpg:Terminal window gpg --verify aembit_agent_cli_linux_amd64_1.24.3328.tar.gz.sha256.sig aembit_agent_cli_linux_amd64_1.24.3328.tar.gz.sha256If you don't have
gpginstalled, see Verifying Aembit binary release signatures prerequisites.Your output should look similar to the following and include the highlighted line:
Terminal window gpg --verify aembit_agent_cli_linux_amd64_1.24.3328.tar.gz.sha256.sig aembit_agent_cli_linux_amd64_1.24.3328.tar.gz.sha256gpg: Signature made Wed Sep 18 10:13:57 2024 PDTgpg: using RSA key EA3D8D2FDAC6BD8137163D00D655E64729BC67D7gpg: Good signature from "Aembit, Inc. <keybase@aembit.io>" [unknown]...As long as you see
Good signature..., you know that the checksum files are valid and authentic.Verify the integrity of the Aembit Agent file you downloaded using
shasum:Terminal window shasum -a 256 aembit_agent_cli_linux_amd64_1.24.3328.tar.gz.sha256If
shasumreturns a match, you know the file is intact and matches Aembit's original. The long hex string is the SHA256 hash that both your file and the checksums file agree on. No output would mean the checksums don't match.
Download the Aembit Agent release version from the Aembit Agent Releases page along with the matching checksum files.
Alternatively, you can download these files using
curl, swapping out the highlighted release version with the version you're verifying:Terminal window curl -O https://releases.aembit.io/agent/1.24.3328/linux/arm64/aembit_agent_cli_linux_arm64_1.24.3328.tar.gzcurl -O https://releases.aembit.io/agent/1.24.3328/aembit_agent_cli_linux_arm64_1.24.3328.tar.gz.sha256curl -O https://releases.aembit.io/agent/1.24.3328/aembit_agent_cli_linux_arm64_1.24.3328.tar.gz.sha256.sigImport Aembit's public GPG key from Keybase into
gpg:Terminal window curl "https://keybase.io/aembit/pgp_keys.asc" | gpg --importVerify Aembit Agent's checksum integrity and authenticity with
gpg:Terminal window gpg --verify aembit_agent_cli_linux_arm64_1.24.3328.tar.gz.sha256.sig aembit_agent_cli_linux_arm64_1.24.3328.tar.gz.sha256If you don't have
gpginstalled, see Verifying Aembit binary release signatures prerequisites.Your output should look similar to the following and include the highlighted line:
Terminal window gpg --verify aembit_agent_cli_linux_arm64_1.24.3328.tar.gz.sha256.sig aembit_agent_cli_linux_arm64_1.24.3328.tar.gz.sha256gpg: Signature made Wed Sep 18 10:13:57 2024 PDTgpg: using RSA key EA3D8D2FDAC6BD8137163D00D655E64729BC67D7gpg: Good signature from "Aembit, Inc. <keybase@aembit.io>" [unknown]...As long as you see
Good signature..., you know that the checksum files are valid and authentic.Verify the integrity of the Aembit Agent file you downloaded using
shasum:Terminal window shasum -a 256 aembit_agent_cli_linux_arm64_1.24.3328.tar.gz.sha256If
shasumreturns a match, you know the file is intact and matches Aembit's original. The long hex string is the SHA256 hash that both your file and the checksums file agree on. No output would mean the checksums don't match.
Download the Aembit Agent release version from the Aembit Agent Releases page along with the matching checksum files.
Alternatively, you can download these files using
curl, swapping out the highlighted release version with the version you're verifying:Terminal window curl -O https://releases.aembit.io/agent/1.24.3328/windows/amd64/aembit_agent_cli_windows_amd64_1.24.3328.zipcurl -O https://releases.aembit.io/agent/1.24.3328/aembit_agent_cli_windows_amd64_1.24.3328.zip.sha256curl -O https://releases.aembit.io/agent/1.24.3328/aembit_agent_cli_windows_amd64_1.24.3328.zip.sha256.sigImport Aembit's public GPG key from Keybase into
gpg:Terminal window curl "https://keybase.io/aembit/pgp_keys.asc" | gpg --importVerify Aembit Agent's checksum integrity and authenticity with
gpg:Terminal window gpg --verify aembit_agent_cli_windows_amd64_1.24.3328.zip.sha256.sig aembit_agent_cli_windows_amd64_1.24.3328.zip.sha256If you don't have
gpginstalled, see Verifying Aembit binary release signatures prerequisites.Your output should look similar to the following and include the highlighted line:
Terminal window gpg --verify aembit_agent_cli_windows_amd64_1.24.3328.zip.sha256.sig aembit_agent_cli_windows_amd64_1.24.3328.zip.sha256gpg: Signature made Wed Sep 18 10:13:57 2024 PDTgpg: using RSA key EA3D8D2FDAC6BD8137163D00D655E64729BC67D7gpg: Good signature from "Aembit, Inc. <keybase@aembit.io>" [unknown]...As long as you see
Good signature..., you know that the checksum files are valid and authentic.Verify the integrity of the Aembit Agent file you downloaded using
shasum:Terminal window shasum -a 256 aembit_agent_cli_windows_amd64_1.24.3328.zip.sha256If
shasumreturns a match, you know the file is intact and matches Aembit's original. The long hex string is the SHA256 hash that both your file and the checksums file agree on. No output would mean the checksums don't match.