This tool compares user groups in JumpCloud to user groups in AWS Identity Center. It identifies and reconciles:
- Extra groups in AWS that are not bound to an AWS application in JumpCloud
- Users in AWS groups who are not members of the corresponding JumpCloud group
Pre-built binaries are available on the Releases page.
# Example for macOS arm64 (replace vX.Y.Z with the latest version)
curl -LO https://github.com/TheJumpCloud/jc-aws-group-reconciler/releases/download/vX.Y.Z/jc-aws-group-reconciler-X.Y.Z-macos-arm64.zip
unzip jc-aws-group-reconciler-X.Y.Z-macos-arm64.zip
chmod +x jc-aws-group-reconciler-X.Y.Z-macos-arm64
Set the required environment variables:
export JUMPCLOUD_API_KEY="your-jumpcloud-api-key"
export JUMPCLOUD_APPLICATION_IDS="app-id-1,app-id-2"
export AWS_REGION="your-aws-region"
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_ID_STORE_ID="your-id-store-id"
# Optional: export AWS_SESSION_TOKEN="your-session-token"
./jc-aws-group-reconciler-X.Y.Z-macos-arm64
- JumpCloud API Key with admin privileges
- Application IDs for all AWS applications bound to JumpCloud user groups
Your AWS credentials need the following permissions:
- ListGroupMemberships
- ListGroups
- ListUsers
- DescribeUser
- Go to Identity and Access Management (IAM) Dashboard
- Enable access to the Identity Store service
- Create a policy with the required permissions
- Attach the policy to your IAM user/role
- AWS Region (where your Identity Center is configured)
- AWS Access Key ID and Secret Access Key
- AWS ID Store ID (found in IAM Identity Center settings)
- Session Token (only if you're using AWS SSO)
Variable | Description | Required |
---|---|---|
JUMPCLOUD_API_KEY | JumpCloud admin API key | Yes |
JUMPCLOUD_APPLICATION_IDS | Comma-separated list of JumpCloud application IDs | Yes |
AWS_REGION | AWS region for Identity Center | Yes |
AWS_ACCESS_KEY_ID | AWS access key ID | Yes |
AWS_SECRET_ACCESS_KEY | AWS secret access key | Yes |
AWS_ID_STORE_ID | AWS Identity Store ID | Yes |
AWS_SESSION_TOKEN | AWS session token (for SSO) | No |
For convenience, you can create a helper script to set environment variables. A sample run.sh
is provided in the repository.
You can verify the integrity of downloaded binaries using the SHA256SUMS.txt file included in each release:
sha256sum -c SHA256SUMS.txt
- Go 1.18 or newer
- Git
# Clone the repository
git clone https://github.com/TheJumpCloud/jc-aws-group-reconciler.git
cd jc-aws-group-reconciler
# Build for your platform
make build
# Build for all platforms
make build-all
# Clean build artifacts
make clean
# Clone the repository
git clone https://github.com/TheJumpCloud/jc-aws-group-reconciler.git
cd jc-aws-group-reconciler
# Run directly
go run .
# Or build manually
go build -o jc-aws-group-reconciler .
- Develop and test your changes
- Create a PR and merge changes to the main branch
- Check the existing tags to establish the next version
- Run the 'Create Tag' GitHub Actions workflow using the next version as input
- The 'Release' GitHub Actions workflow will automatically build binaries and create a release
- Binaries can be downloaded from the GitHub Releases page