{"id":47844744,"url":"https://github.com/quinnjr/docker-extension-aws","last_synced_at":"2026-04-03T21:08:33.446Z","repository":{"id":332212004,"uuid":"1133086998","full_name":"quinnjr/docker-extension-aws","owner":"quinnjr","description":"Docker Desktop Extension for managing AWS MFA credentials with automatic session token generation. Seamlessly inject AWS credentials into containers and Docker Compose.","archived":false,"fork":false,"pushed_at":"2026-03-23T12:31:23.000Z","size":477,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-24T09:59:29.401Z","etag":null,"topics":["angular","aws","aws-mfa","credentials","devops","docker","docker-compose","docker-desktop","docker-extension","golang","mfa","session-tokens"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quinnjr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":null,"patreon":"PegasusHeavyIndustries","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2026-01-12T21:34:56.000Z","updated_at":"2026-03-23T12:31:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/quinnjr/docker-extension-aws","commit_stats":null,"previous_names":["quinnjr/docker-extension-aws"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/quinnjr/docker-extension-aws","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fdocker-extension-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fdocker-extension-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fdocker-extension-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fdocker-extension-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quinnjr","download_url":"https://codeload.github.com/quinnjr/docker-extension-aws/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quinnjr%2Fdocker-extension-aws/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31377561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","aws","aws-mfa","credentials","devops","docker","docker-compose","docker-desktop","docker-extension","golang","mfa","session-tokens"],"created_at":"2026-04-03T21:08:32.814Z","updated_at":"2026-04-03T21:08:33.441Z","avatar_url":"https://github.com/quinnjr.png","language":"Go","funding_links":["https://patreon.com/PegasusHeavyIndustries"],"categories":[],"sub_categories":[],"readme":"# Docker AWS MFA Extension\n\nA Docker Desktop Extension that automatically handles AWS MFA authentication and injects credentials into Docker containers.\n\n![AWS MFA Extension](screenshots/login.png)\n\n## Status\n\n**Stable.** Published on Docker Hub as `quinnjr/docker-aws-mfa`. Supports amd64 and arm64 architectures.\n\n## Tech Stack\n\n| Component | Technology |\n|-----------|-----------|\n| **Backend** | Go 1.24 (Alpine, static binary) |\n| **UI** | Angular 21 (Docker Desktop dashboard tab) |\n| **CLI** | Go (cross-compiled for macOS, Linux, Windows) |\n| **Build** | Docker multi-stage, buildx multi-arch |\n| **Package manager** | pnpm 9 (UI) |\n| **License** | MIT |\n\n## Features\n\n- **Visual Dashboard**: Manage AWS MFA credentials directly from Docker Desktop\n- **Multi-Profile Support**: Handle multiple AWS profiles with MFA\n- **Auto-Expiry Tracking**: See credential expiration status at a glance\n- **CLI Integration**: Full CLI tool for terminal workflows\n- **Docker Integration**: Inject credentials into `docker run` and `docker compose`\n\n## Installation\n\n### From Docker Desktop Extension Marketplace\n\nSearch for \"AWS MFA\" in the Docker Desktop Extensions marketplace and click Install.\n\n### Manual Installation\n\n```bash\ndocker extension install quinnjr/docker-aws-mfa:latest\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/quinnjr/docker-plugin-aws.git\ncd docker-plugin-aws\nmake install\n```\n\n## Prerequisites\n\nAWS CLI configured with MFA serial in `~/.aws/config`:\n\n```ini\n[default]\nregion = us-west-2\nmfa_serial = arn:aws:iam::123456789012:mfa/username\n\n[profile myprofile]\nregion = us-east-1\nmfa_serial = arn:aws:iam::987654321098:mfa/username\n```\n\n## Usage\n\n### Docker Desktop UI\n\n1. Open Docker Desktop\n2. Click on \"AWS MFA\" in the left sidebar\n3. Select your AWS profile\n4. Enter your MFA token code\n5. Click \"Login with MFA\"\n\nYour credentials will be cached and shown in the dashboard.\n\n### CLI Commands\n\nThe extension also installs a CLI tool:\n\n```bash\n# Authenticate with MFA\ndocker aws login\ndocker aws login -p myprofile\n\n# Check status\ndocker aws status\ndocker aws status -a  # All profiles\n\n# Export credentials\ndocker aws env -o ./aws.env\neval $(docker aws env --export)\n\n# Run containers with AWS credentials\ndocker aws run -- -it amazon/aws-cli s3 ls\ndocker aws run -p myprofile -- myimage:latest\n\n# Docker Compose with credentials\ndocker aws compose -- up -d\ndocker aws compose -p myprofile -- logs -f\n```\n\n## Development\n\n### Build locally\n\n```bash\nmake build\nmake install\n```\n\n### Development mode with hot reload\n\n```bash\nmake dev\n```\n\n### View logs\n\n```bash\nmake logs\n```\n\n## Publishing\n\n### To Docker Hub\n\n```bash\nmake build-cross\nmake push\n```\n\n### To Extension Marketplace\n\n1. Build multi-architecture image: `make build-cross`\n2. Push to Docker Hub: `make push`\n3. Submit to [Docker Extension Marketplace](https://hub.docker.com/extensions)\n\n## Project Structure\n\n```\ndocker-plugin-aws/\n├── backend/             # Go backend (AWS STS operations)\n│   ├── main.go          # HTTP handlers + AWS MFA logic\n│   ├── proxy.go         # Docker VM socket proxy\n│   ├── go.mod\n│   └── go.sum\n├── ui/                  # Angular frontend (Docker Desktop tab)\n│   └── src/\n├── Dockerfile           # Multi-stage build (Go + Angular + CLI)\n├── docker-compose.yaml  # Docker Desktop VM service\n├── metadata.json        # Extension metadata (UI, VM, CLI binaries)\n├── entrypoint.sh        # Container entry point\n├── Makefile             # Build automation\n├── install.sh           # Local installation script\n├── install-remote.sh    # Remote installation script\n└── screenshots/         # Documentation screenshots\n```\n\n## How It Works\n\n1. **Backend**: Go service running in Docker Desktop VM handles AWS STS calls\n2. **UI**: React dashboard communicates with backend via Docker Extension API\n3. **CLI**: Binary installed on host for terminal workflows\n4. **Caching**: Credentials cached in `~/.docker/aws-mfa-cache/` with auto-expiry\n\n## Related Repos\n\n| Repo | Relationship |\n|------|-------------|\n| `aws-local` | Local AWS service emulator (separate concern -- no MFA needed) |\n| `lexmata-infrastructure` | Pulumi AWS infrastructure that requires MFA-authenticated credentials |\n\n## License\n\nMIT License - see [LICENSE](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquinnjr%2Fdocker-extension-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquinnjr%2Fdocker-extension-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquinnjr%2Fdocker-extension-aws/lists"}