{"id":21569885,"url":"https://github.com/iterable/samltoawsstskeys","last_synced_at":"2025-10-18T23:59:19.967Z","repository":{"id":72190216,"uuid":"226446156","full_name":"Iterable/samltoawsstskeys","owner":"Iterable","description":null,"archived":false,"fork":false,"pushed_at":"2019-12-18T20:20:23.000Z","size":761,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-01-24T12:45:17.627Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/Iterable.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"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}},"created_at":"2019-12-07T02:50:35.000Z","updated_at":"2019-12-18T20:20:24.000Z","dependencies_parsed_at":"2023-05-27T12:15:27.737Z","dependency_job_id":null,"html_url":"https://github.com/Iterable/samltoawsstskeys","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iterable%2Fsamltoawsstskeys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iterable%2Fsamltoawsstskeys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iterable%2Fsamltoawsstskeys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Iterable%2Fsamltoawsstskeys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Iterable","download_url":"https://codeload.github.com/Iterable/samltoawsstskeys/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244166760,"owners_count":20409179,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-24T11:10:57.737Z","updated_at":"2025-10-18T23:59:14.928Z","avatar_url":"https://github.com/Iterable.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SAML to AWS STS Keys Conversion\r\nGoogle Chrome Extension which converts a SAML 2.0 assertion to AWS STS Keys (temporary credentials). Just log in to the AWS Web Management Console using your SAML IDP and the Chrome Extension will fetch the SAML Assertion from the HTTP request. The SAML Assertion is then used to call the assumeRoleWithSAML API to create the temporary credentials. (AccessKeyId, SecretAccessKey and SessionToken).\r\n\r\nThe Chrome Extension can be downloaded here:\r\n\r\n\r\n\r\n[Google Chrome Web Store](https://chrome.google.com/webstore/detail/ekniobabpcnfjgfbphhcolcinmnbehde/)\r\n\r\n# Table of Contents\r\n* [Why this Chrome Extension?](#why)\r\n* [Getting Started](#gettingstarted)\r\n* [Create a symlink to your .aws directory (for macOS users)](#symlink)\r\n* [Frequently Asked Question](#faq)\r\n\r\n## \u003ca name=\"why\"\u003e\u003c/a\u003eWhy this Chrome Extension?\r\nIf you don't have any user administration setup within AWS Identity \u0026 Access Management (IAM) but instead rely on your corporate user directory, i.e. Microsoft Active Directory. Your company uses a SAML 2.0 Identity Provider (IDP) to log in to the AWS Web Management Console (Single Sign On). Then this Chrome Estension if for you!\r\n\r\nYou run into trouble as soon as you would like to execute some fancy scripts from your computer which calls the AWS API's. When sending a request to the AWS API's you need credentials, meaning an AccessKey and SecretKey. You can easily generate these keys for each user in AWS IAM. However, since you don't have any users in AWS IAM and don't want to create users just for the sake of having an AccessKey and SecretKey you are screwed. But there is a way to get temporary credentials specifically for your corporate identity.\r\n\r\nThe Security Token Service (STS) from AWS provides an API action assumeRoleWithSAML. Using the SAML Assertion given by your IDP the Chrome Extension will call this API action to fetch temporary credentials. (AccessKeyId, SecretAccessKey and SessionToken). This way there is no need to create some sort of anonymous user in AWS IAM used for executing scripts. This would be a real security nightmare, since it won't be possible to audit who did what. This Chrome Extension however will make it super easy for you to just use your corporate identity for executing scripts calling AWS API's.\r\n\r\n## \u003ca name=\"gettingstarted\"\u003e\u003c/a\u003eGetting Started\r\nTODO\r\n\r\n## \u003ca name=\"symlink\"\u003e\u003c/a\u003eCreate a symlink to your .aws directory (for macOS users)\r\n\r\nln -s \"/Users/$YourUser/Downloads/credentials\" \"/Users/$YourUser/.aws/\"\r\n\r\nTODO\r\n\r\n## \u003ca name=\"faq\"\u003e\u003c/a\u003eFAQ: Frequently Asked Question\r\n1. Why can I not save file somewhere else?\r\nTODO\r\n2. How long are the credentials valid?\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiterable%2Fsamltoawsstskeys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiterable%2Fsamltoawsstskeys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiterable%2Fsamltoawsstskeys/lists"}