Two CLI tools for AWS authentication and EKS cluster IP whitelisting.
| Tool | Purpose |
|---|---|
saml |
Authenticate to AWS accounts via SAML (saml2aws) and update kubeconfigs |
eks |
Whitelist your current external IP on EKS cluster publicAccessCidrs |
- AWS CLI v2
- jq
dig(comes withbind/bind-tools— pre-installed on macOS)- For
saml: saml2aws
brew tap FathAllaTechOps/saml-auth
brew install saml-authcurl -sSL https://github.com/FathAllaTechOps/saml-auth/archive/refs/heads/main.tar.gz | tar -xz
sudo cp saml-auth-main/bin/saml.sh /usr/local/bin/saml
sudo cp saml-auth-main/bin/eks.sh /usr/local/bin/eks
sudo chmod +x /usr/local/bin/saml /usr/local/bin/eksbrew update && brew upgrade saml-authRe-run the manual install steps above with the latest release tarball:
VERSION="v8.0.0" # replace with the latest version
curl -sSL "https://github.com/FathAllaTechOps/saml-auth/archive/${VERSION}.tar.gz" | tar -xz
sudo cp "saml-auth-${VERSION#v}/bin/saml.sh" /usr/local/bin/saml
sudo cp "saml-auth-${VERSION#v}/bin/eks.sh" /usr/local/bin/eks
sudo chmod +x /usr/local/bin/saml /usr/local/bin/eksFirst-time setup — configure your AWS profiles:
saml configAuthenticate and update kubeconfigs:
samlYou will be prompted for your SSO email and password. The script will:
- Authenticate each selected profile via
saml2aws - Update
~/.kube/configwith all EKS clusters acrosseu-west-1andeu-central-1 - Optionally run
eksto whitelist your IP on production clusters
Options:
saml config Configure AWS profiles
saml --help Show help
saml --version Show version
Adds your current external IP as a /32 CIDR to EKS cluster publicAccessCidrs.
Supports both AWS SSO profiles (~/.aws/config) and static credential profiles (~/.aws/credentials).
eksYou will be prompted to select:
- AWS region (
eu-west-1,eu-central-1,us-east-2,us-east-1) - AWS profile — SSO profiles are tagged
[sso], credential profiles tagged[creds] - Which clusters to update
If your SSO session is expired, the script automatically triggers aws sso login before proceeding.
eks --help Show help
Note: The IP whitelisting step is only needed for production accounts. Lower environments are open to
0.0.0.0/0by default.
Releases are published via the Release Workflow GitHub Action, triggered manually.
Steps:
- Merge all changes into
main - Go to Actions → Release Workflow → Run workflow
- Enter the version in
vX.Y.Zformat (e.g.v8.1.0) - Click Run workflow
The workflow will:
- Validate the version format (
vX.Y.Z) - Run ShellCheck on all
.shfiles — the release is blocked if any check fails - Create a GitHub release tagged with the version
- Upload
bin/saml.shandbin/eks.shas release assets - Compute and print the SHA256 checksum of the source tarball (needed to update the Homebrew formula)
Versioning convention: follow semver.
- Bump patch (
v8.0.x) for bug fixes - Bump minor (
v8.x.0) for new features or backward-compatible changes - Bump major (
vx.0.0) for breaking changes
| Path | Purpose |
|---|---|
~/.saml-auth/saml_profile.config |
Profiles saved by saml config |
~/.aws/config |
AWS SSO profiles |
~/.aws/credentials |
Static credential profiles (legacy) |
~/.saml2aws |
saml2aws configuration |