Prerequisites
- Sign up for a free JumpCloud Account
- Sign up for a free AWS Account
- After signing up for AWS, note your AWS Account Number.
- Define a Naming Convention for custom user attributes that will be used to grant AWS Role Permissions in JumpCloud. The resulting values should be unique across AWS Accounts and Roles.
- Example Naming Convention:
AWS<<AWS_Account_Number>><<AWS_Role_Name>> - Example Attribute Name:
AWS673127022430ADM
- Example Naming Convention:
Configuring JumpCloud SSO Application
- Browse to the JumpCloud Admin Console and authenticate with Administrator credentials.
- Click SSO
- Click the Plus button to configure a New SSO Application.
- Search for
AWS - Click Configure next to
Amazon Web Services (IAM). - On the
General Infotab, provide aDisplay Label. - On the
SSOtab, clickadd attributeunder theUSER ATTRIBUTE MAPPINGsection for each Account/Role custom user attribute.- For all attributes added, use
https://aws.amazon.com/SAML/Attributes/Rolefor theService Provider Attribute Nameand the Account/Role custom user attribute as theJumpCloud Attribute Name. - Example:
- Service Provider Attribute Name:
https://aws.amazon.com/SAML/Attributes/Role - JumpCloud Attribute Name:
AWS673127022430ADM
- For all attributes added, use
- On the
SSOtab, under theCONSTANT ATTRIBUTESsection: - Delete the default
https://aws.amazon.com/SAML/Attributes/Roleattribute. - Change the
https://aws.amazon.com/SAML/Attributes/SessionDurationattribute to43200seconds (12 hours) - Click Activate to create the JumpCloud SSO Application
- Select the newly created JumpCloud SSO Application and click
export metadatato download the Identity Provider Metadata XML file.
Configure a new Identity Provider in AWS Identity and Access Management (IAM)
- Browse to the AWS Admin Console.
- Log in with Administrative Credentials.
- Under Services, select
IAM. - In the Identity and Access Management (IAM) dashboard, click Identity providers.
- Click Add provider.
- Choose
SAMLfor theProvider type. - Choose a meaningful
Provider name. - Click
Choose fileto browse to the downloaded Identity Provider Metadata XML file. - Add tags to facilitate searching and identification.
- Example:
- Tag Name:
IdentityProvider - Tag Value:
JumpCloud
- Tag Name:
- Example:
- Click Add Provider.
- Click the newly created Identity Provider.
- Copy the Identity Provider’s ARN.
Configure a new IAM Role to be assumed by SAML Identities in AWS Identity and Access Management (IAM)
- Browse to the AWS Admin Console.
- Log in with Administrative Credentials.
- Under Services, select
IAM. - In the Identity and Access Management (IAM) dashboard, click Roles.
- Click Create role.
- Select
AWS accountfor theTrusted entity type. - Specify the AWS Account Number.
- Click Next.
- Add required permissions to the role.
- To create an Administrator role:
- Search for the
AdministratorAccesspolicy. - Click the checkbox next to the
AdministratorAccesspolicy.
- Search for the
- To create an Administrator role:
- Click Next.
- Provide a meaningful
Role name. - Click
EditonStep 1: Select trusted entities. - For
Trusted entity typechooseSAML 2.0 federation. - For
SAML 2.0-based providerselect the Identity Provider you created in the previous section. - Select
Allow programmatic and AWS Management Console Access. - Click Next.
- Click Next.
- Add tags to facilitate searching and identification.
- Example:
- Tag Name:
IdentityProvider - Tag Value:
JumpCloud
- Tag Name:
- Example:
- Click
Create role. - Click
View roleon the green notification bar. - Copy the Role’s ARN.
Configure JumpCloud Group custom user attributes.
- Browse to the JumpCloud Admin Console and authenticate with Administrator credentials.
- Click User Groups
- Click the Plus button to create a new group.
- On the
Detailstab:- Provide a meaningful name.
- Click
add new custom attributein theCustom Attributessection and selectString - Add Custom Attributes for each AWS IAM Role being granted to the Group.
- For
Attribute Nameprovide an AWS Account/Role custom attribute value.- Example:
AWS673127022430ADM
- Example:
- For
Attribute Valueprovide a comma delimited list containing both the AWS Role ARN and the AWS Identity Provider ARN.- Example:
arn:aws:iam::673127022430:role/JumpCloud-SSO-Administrator-Access,arn:aws:iam::673127022430:saml-provider/JumpCloud
- Example:
- Repeate for each AWS IAM Role.
- For
- On the
Userstab, select which users should be granted AWS access. - On the
Applicationstab, grant the group access to the AWS SSO application. - Click Save
Test your work by logging into the AWS Dashboard using JumpCloud SSO.
- Browse to the JumpCloud User Console
- Click the AWS tile.
- Select the Role you want to assume.
Configure saml2aws for command line access.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
brew install saml2aws
saml2aws configure \
--idp-account=ryezone-com \
--url=https://sso.jumpcloud.com/saml2/aws-rzlbs \
--idp-provider=JumpCloud \
--mfa=WEBAUTHN \
--profile=ryezone-com
saml2aws login \
--idp-account=ryezone-com \
--profile=ryezone-com \
--region=us-east-2 \
--role=arn:aws:iam::673127022430:role/JumpCloud-SSO-Administrator-Access \
--cache-saml \
--skip-prompt \
--force