CLI for working with the ALKS service.
7.9K
CLI for working with the ALKS service.
To install and use the ALKS CLI, you will need Node.js (version 10 or greater) and NPM (nodejs.org).
ALKS CLI is meant to be installed via NPM.
npm install -g alks
The ALKS CLI requires some basic environment information to get started. Simply run the configuration command and you'll be prompted for the necessary configuration settings.
alks developer configure
https://alks.company.com/rest)Some commands will also work without configuration if the ALKS_SERVER, ALKS_USERID, and either ALKS_PASSWORD or ALKS_REFRESH_TOKEN environment variables are set, although you may be required to specify the output format, account, or role to use explicitly via CLI flags since no default configuration is set in this case.
After installing the ALKS CLI it will be available on your path. Simply run the following to see a list of supported commands:
alks
To see a what options are available to a command ask for help on it:
alks sessions help open
Since ALKS requires you to pass your credentials, we've made the CLI provide multiple ways of handling this.
alks developer login and follow the prompt. You can remove your password at any time by running alks developer logout.-p 'my pass!'. Note this will appear in your Bash history.ALKS_PASSWORD whose value is your password.We will attempt to lookup your password in the following order:
The preferred authentication mechanism is two-factor authentication. Simply log into the ALKS GUI and get your refresh token which we will securely store just like your password.
Note: Credential authentication will be removed in a future release of the ALKS CLI.
If you would rather run the ALKS CLI as a Docker container, simply run the following:
docker run -it -v ~:/root coxauto/alks-cli
If you are on a windows host and need SET instead of export then add a PLATFORM env:
docker run -it -e PLATFORM=windows -v %USERPROFILE%:/root coxauto/alks-cli sessions open -a %AWS_ACCT% -r %AWS_ROLE% -o env
developer configurealks developer configure - Configures ALKS
developer loginalks developer login - Store your login credentials in the OS keychain.
developer logoutalks developer logout - Remove your login credentials from the OS keychain.
developer login2faalks developer login2fa - Store your 2FA refresh token in the OS keychain.
developer logout2faalks developer logout2fa - Remove your 2FA refresh token from the OS keychain.
developer infoalks developer info - Show your current developer configuration
developer accountsalks developer accounts - Show all available ALKS accounts (both Standard and IAM)
developer favoritesalks developer favorites - Configure which accounts are favorites
sessions openalks sessions open Creates/resumes an ALKS session, this is the preferred way of using ALKS as it automates the underlying ALKS session for you. If you don't provide an account/role you'll be prompted for the one you'd like to use. Alternative you can use your default account/role by passing -d.
This will create your sessions with the maximum life and automatically renew them when necessary. If you would like to do IAM/Admin work you'll need to pass the -i flag.
Arguments:
-p [password] Your password-a [account] The ALKS account to use, be sure to wrap in quotes-r [role] The ALKS role to use, be sure to wrap in quotes-i Specifies you wish to work as an IAM/Admin user-o [output] Output format. Supports: env, json, docker, creds, idea, export, set, powershell, aws, fishshell, terraformenv, terraformarg-n If output is set to creds, use this named profile (defaults to default)-N Forces a new session to be generated-d Uses your default account from alks developer configure-f If output is set to creds, force overwriting of AWS credentials if they already exist-F Filters favorite accountsOutput values:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKENsessions consolealks sessions console - Open the AWS console in the default browser for the specified ALKS session.
Arguments:
-p [password] Your password-u [url] Print the URL-a [account] The ALKS account to use, be sure to wrap in quotes-r [role] The ALKS role to use, be sure to wrap in quotes-i Specifies you wish to work as an IAM/Admin user-o [appName] Open with an alternative app (safari, google-chrome, etc)-N Forces a new session to be generated-d Uses your default account from alks developer configure-p [password] Your password-F Filters favorite accountssessions listalks sessions list - List active ALKS sessions, this includes both IAM and non-IAM sessions.
Arguments:
-p [password] Your passwordiam createrolealks iam createrole Creates a new IAM role for the requested type in the specified AWS account.
Arguments:
-p [password] Your password-n [roleName] The name of the role, be sure to wrap in quotes, alphanumeric including: @+=._--t [roleType] The role type, to see available roles: alks iam roletypes, be sure to wrap in quotes-d: Include default policies, defaults to false-F Filters favorite accountsOutputs the created role's ARN.
iam createtrustrolealks iam createtrustrole Creates a new IAM Trust role for the requested type in the specified AWS account.
Arguments:
-T [trustarn] Your trust arn-n [roleName] The name of the role, be sure to wrap in quotes, alphanumeric including: @+=._--t [roleType] The role type Cross Account or Inner Account, be sure to wrap in quotes-a [alksAccount]: ALKS account to use-r [alksRole]: ALKS role to use-F Filters favorite accountsOutputs the created role's ARN.
iam deleterolealks iam deleterole Deletes a previously created IAM role in the specified AWS account. Note this only works for IAM roles that were created with ALKS.
Arguments:
-p [password] Your password-n [roleName] The name of the role, be sure to wrap in quotes, alphanumeric including: @+=._-iam roletypesalks iam roletypes - List the available IAM role types.
Arguments:
-o [output] Output format. Supports: json, listOutputs a list of available role types.
iam createltkalks iam createltk Creates a new long term key in the specified AWS account.
Arguments:
-a [account] The ALKS account to use, be sure to wrap in quotes-n [iamusername] The name of the IAM user associated with the LTK, be sure to wrap in quotes, alphanumeric including: @+=._--o [output] Output format. Supports: text, json. Default: text-r [role] The ALKS role to use, be sure to wrap in quotes-F Filters favorite accountsOutputs the created user's ARN along with the long term access key and long term secret key.
iam deleteltkalks iam deleteltk Deletes a previously created LTK in the specified AWS account.
Arguments:
-p [password] Your password-n [iamusername] The name of the IAM user, be sure to wrap in quotes, alphanumeric including: @+=._-The metadata server listens on http://169.254.169.254 and mimicks the AWS EC2 Instance Metadata server. If you request credentials from http://169.254.169.254/latest/meta-data/iam/security-credentials/alks it will ensure you have a valid set of up-to-date credentials from ALKS. The account and role used can be changed at any time by running alks server configure.
server configurealks server configure - Configure the account and role used by the metadata server. This can also be invoked while the server is running.
Arguments:
-p [password] Your password-a [account] The ALKS account to use, be sure to wrap in quotes-r [role] The ALKS role to use, be sure to wrap in quotes-i Specifies you wish to work as an IAM/Admin user-F Filters favorite accountsserver startalks server start - Start the metadata server.
server stopalks server stop - Stop the metadata server.
ALKS CLI will output in a variety of formats, it uses the developer default (set with alks developer configure) and can be overridden by passing a value via -o.
env: Outputs Bash/Windows environment variable string. You can wrap this call in an eval: eval $(alks sessions open -d)json: Outputs a JSON objectdocker: Outputs environment arguments to pass to a Docker run callcreds: Updates the AWS credentials file
-n namedProfile-fidea: Outputs environment variables formatted for Intelli-Jexport: Outputs environment variables via exportset: Outputs environment variables via SETpowershell: Outputs environment variables for Windows PowerShellfishshell: Outputs environment variables for Fishshellterraformenv: Outputs environment variables prefixed with ALKSterraformarg: Outputs environment arguments to pass to a Docker run call prefixed with ALKSaws: Outputs environment arguments to pass to AWS docsContent type
Image
Digest
Size
351.1 MB
Last updated
about 5 years ago
docker pull coxauto/alks-cli