| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Keep your AWS IAM Identity Center (formerly AWS SSO) in sync with your Google Workspace directory using an AWS Lambda function. 🚀
For a detailed list of new features, improvements, and bug fixes in each release, see the What's New page.
This project is compatible with the latest AWS Lambda runtimes. Since version v0.0.19, it uses the provided.al2 runtime and arm64 architecture.
| Version Range | AWS Lambda Runtime | Architecture | Deprecation Date |
|---|---|---|---|
| <= v0.0.18 | Go 1.x | amd64 (Intel) | 2023-12-31 |
| >= v0.0.19 < v0.31.0 | provided.al2 | arm64 (Graviton 2) | 2026-06-30 |
| >= v0.31.0 | provided.al2023 | arm64 (Graviton 2) | 2029-06-30 |
The AWS Lambda function is triggered by a CloudWatch event rule (every 15 minutes by default). It syncs your AWS IAM Identity Center with your Google Workspace directory using their respective APIs.
During the first sync, the data of your Groups and Users is stored in an AWS S3 bucket as a state file. This state file is a custom implementation to save time and requests to the AWS SSO SCIM API, and to mitigate some of its limitations.
This project is developed using the Go language and AWS SAM.
For more details on the resources created by the CloudFormation template, please check the AWS SAM Template documentation.
Note: If this is your first time implementing AWS IAM Identity Center, please read Using SSO.
This repository builds two binaries from the cmd/ directory:
| Program | Source | Purpose |
|---|---|---|
| idpscim | cmd/idpscim | Main synchronization program that runs as the Lambda function, a local CLI, or a container command |
| idpscimcli | cmd/idpscimcli | Helper CLI used to inspect AWS SCIM and Google Workspace data while validating configuration |
After make build, the binaries are available in build/:
./build/idpscim --help
./build/idpscimcli --helpThe repository documentation is organized as follows:
| Document | Purpose |
|---|---|
| docs/idpscim.md | Main program reference for the idpscim sync executable |
| docs/idpscimcli.md | Command reference for the idpscimcli validation and inspection CLI |
| docs/Configuration.md | Configuration sources, examples, and environment variable usage |
| docs/AWS-SAM.md | Source deployment, Serverless Application Repository update flow, and maintainer publishing workflow |
| docs/AWS-SAM-Template.md | Template parameters, generated resources, and Lambda environment mapping |
| docs/Development.md | Local development workflow, build steps, tests, and SAM-based cloud testing |
| docs/Using-SSO.md | Practical rollout guidance for AWS IAM Identity Center and Google Workspace group design |
| docs/State-File-example.md | Example state file structure and notes about how sync state is stored |
| docs/Demo.md | Visual walkthrough screenshots of the sync process and resulting AWS and Google Workspace data |
| docs/Release.md | Maintainer release flow based on semantic version tags and GitHub Actions |
| docs/Whats-New.md | Release notes and notable changes across versions |
The easiest way to deploy and use this project is through the AWS Serverless Application Repository.
You will need to configure credentials for both Google Workspace and AWS.
Google Workspace API Credentials
AWS SSO SCIM API Credentials
You have several options to use this project:
AWS Serverless Application Repository (Recommended)
AWS SAM
export AWS_PROFILE=<profile_name>
export AWS_REGION=<region>
GIT_VERSION=dev sam build
sam deploy --guided --stack-name idp-scim-sync --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAMmake
./build/idpscim --help
./build/idpscimcli --helpRun the programs
Pre-built Binaries
Container Image
By default, all optional user attributes are synced from Google Workspace to AWS SSO SCIM. You can control which optional fields are included using the sync_user_fields configuration option.
Supported optional fields include phoneNumbers, addresses, title, preferredLanguage, locale, timezone, nickName, profileURL, userType, and enterpriseData.
Required fields are always synchronized: name, userName, displayName, emails, and active.
For config file examples, environment variable usage, CLI flags, SAM parameter usage, and behavior notes, see docs/Configuration.md and docs/idpscim.md.
If you are coming from the awslabs/ssosync project, please note the following:
This project is released under the Apache License 2.0. See the LICENSE file for more details.
| Back | FazBrowse Home | New Git URL |