Just-In-Time (JIT) access to roles
Granted can be used with Common Fate for just-in-time access to privileged AWS roles.
Prerequisites
For this recipe, you’ll need a Common Fate deployment. Email us or message us on Slack to arrange a Common Fate licence key for a proof-of-concept deployment.
You’ll also need Granted v0.23.0 or later installed.
You can use Granted to request just-in-time access to roles. Internally, we use AWS credential_process to source credentials through Granted.
You will need to update each role you want to request access to with the following configuration:
[profile my-profile]sso_account_id = <your-sso-account-id>sso_region = <your-sso-region>sso_role_name = <your-role-name>sso_start_url = <https://example.awsapps.com/start>
[profile updated-profile]granted_sso_account_id = <your-sso-account-id>granted_sso_region = <your-sso-region>granted_sso_role_name = <your-role-name>granted_sso_start_url = <https://example.awsapps.com/start>credential_process = granted credential-process --profile updated-profilecommon_fate_url = https://commonfate.example.com # the URL of your Common Fate deployment
Providing the common_fate_url
is optional. If it is not provided, Granted will look up the Common Fate API URL from the Common Fate TOML config file.
Now, try assuming a profile that you don’t currently have access to. For example:
> assume production-access-role
You should see an output similar to the below, depending on the authorization policies you’ve configured in Common Fate.
> assume production-access-role
[i] You don't currently have access to production-access-role, checking if we can request access... [target=AWS::Account::"123456789012", role=AWSAdministratorAccess, url=https://commonfate.example.com][WILL ACTIVATE] AWSAdministratorAccess access to Sandbox-2 will be activated for 2h: https://commonfate.example.com/access/requests/req_2eoefaC9KCuIiOAZ541JsOlU97t[i] Access::Grant::"gra_2eoefkXzQap0kjm6O8fzrLwUbaz": Access is automatically approved because you are on-call in PagerDuty? Apply proposed access changes (y/N)