{"id":25246999,"url":"https://github.com/darko-mesaros/pristup","last_synced_at":"2025-10-26T22:30:50.351Z","repository":{"id":229534750,"uuid":"776972083","full_name":"darko-mesaros/pristup","owner":"darko-mesaros","description":"Generating AWS Credentials for temporary access","archived":false,"fork":false,"pushed_at":"2024-10-24T20:58:40.000Z","size":105,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-05T12:55:56.237Z","etag":null,"topics":["aws","iam","security","temporary-credentials"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/darko-mesaros.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":"2024-03-24T23:39:44.000Z","updated_at":"2025-01-02T22:24:41.000Z","dependencies_parsed_at":"2024-03-25T01:39:54.339Z","dependency_job_id":"3cb18113-46af-47df-80d5-5e5f75da3369","html_url":"https://github.com/darko-mesaros/pristup","commit_stats":null,"previous_names":["darko-mesaros/pristup"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darko-mesaros%2Fpristup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darko-mesaros%2Fpristup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darko-mesaros%2Fpristup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darko-mesaros%2Fpristup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darko-mesaros","download_url":"https://codeload.github.com/darko-mesaros/pristup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238404864,"owners_count":19466393,"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":["aws","iam","security","temporary-credentials"],"created_at":"2025-02-12T02:56:45.493Z","updated_at":"2025-10-26T22:30:50.019Z","avatar_url":"https://github.com/darko-mesaros.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pristup 🦀⛅🔐\n\n![screenshot of pristup](/img/pristup.png)\n\nA tool that generates temporary AWS Console sign-in URLs. The purpose of this is to enable your users that do not have AWS Console access, temporary access to it without the need for a username and password.\n\n## Getting Started\n\nTo get started using this you need to do a few things:\n\n### Get AWS credentials configured locally ☁️\n\nTo be able to interact with AWS you need to have a set of AWS Credentials on the machine **Pristup** will run on. The easiest way to get this set up, is by configuring the [AWS CLI](https://aws.amazon.com/cli/). Make sure to install the AWS CLI, and run the `aws configure` [command](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) to set your credentials.\n\nTo verify if you have your AWS credentials set correctly, you can run `aws sts get-caller-identity`:\n```bash\ndarko@devbox [~/]: aws sts get-caller-identity\n{\n    \"UserId\": \"AIDAXXXXXXXXXXXXXXXXXX5\",\n    \"Account\": \"123456789999999\",\n    \"Arn\": \"arn:aws:iam::123456789999999:user/alan-ford\"\n}\n```\nOh, yeah, make sure the user whose credentials you configure has permissions to `AssumeRole` on the specific role you wish to use. This is an important aspect of it, as the role that needs to be assumed, should give this permission to the user you are invoking this application as. \n\nThe easiest way to do this is go to the role you are looking to assume and add such a policy to it's **Trust Relationship**:\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": \"arn:aws:iam::123456789999999:user/alan-ford\"\n            },\n            \"Action\": \"sts:AssumeRole\"\n        }\n    ]\n}\n```\n\u003e ⚠️ Please note: Make sure to replace the **ARN** with the ARN of **your user**.\n\nMore information [here](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html).\n\n### Make sure you have Rust installed 🦀\n\nWell that just makes sense, this is a **Rust** application. The easiest way to get started is by using [rustup](https://www.rust-lang.org/tools/install)\n\nNow, you need some additional packages to be able to compile **pristup**. Namely you need the `build-essential` (or similar) package group. Depending on your operating system, and package manager the name may differ.\n\n**Ubuntu/Debian:**\n```\nsudo apt install build-essential\n```\n\n**Arch Linux:**\n```\nsudo pacman -S base-devel\n```\n\n**MacOS:**\n```\nxcode-select --install\n```\n\n**Amazon Linux/Red Hat/CentOS:**\n```\nyum groupinstall \"Development Tools\"\n```\n\n**Additionally**, you *may* need the `pkg-config` and `libssl-dev` packages (or their equivalents), depending on your operating system.\n\n### Clone the Repository 💾\n\nTo install this package, you can just run `cargo install pristup`\n\nThis will install the compiled binary into your `$CARGO_HOME/bin` directory. If you have the `$PATH` set up correctly you should be able to run it now. But before you do ...\n\nLet's initialize the configuration. Because **pristup** uses a configuration file (`pristup.toml`) it needs to be stored inside of your `$HOME/.config/bedrust` directory. *Now*, you can do this manually, but we have a feature to do it for you. Just run:\n```\npristup --init\n```\nAfter entering the AWS Account ID and the Role you wish to assume, it will create all the necessary files for you to be able to use **pristup**. There is no need to modify these files, unless you want to.\n\n### Running the application 🚀\n\nFinally, to run the application just run:\n```bash\npristup\n```\n\n## Usage 🔧\n```bash\nUsage: pristup [OPTIONS]\n\nOptions:\n  -a, --account \u003cACCOUNT\u003e\n  -r, --role \u003cROLE\u003e\n  -s, --session-name \u003cSESSION_NAME\u003e\n  -t  --timeout \u003cTIMEOUT\u003e\n      --init\n  -h, --help                         Print help\n  -V, --version                      Print version\n```\n\nThis will print out the URL to `stdout`. Just click it, copy it, do whatever. 🚀\n\n## Configuration 🛠️\n\nThere are two ways of passing the configuration items (account ID, role, and session name) to **Pristup**:\n\n- Using the command line parameters\n- Via the `pristup.toml` configuration file that is located in your `$HOME/.config/pristup` directory\n\nBy default, the application looks for command line parameters first. If none are supplied, it gets them from the configuration file. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarko-mesaros%2Fpristup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarko-mesaros%2Fpristup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarko-mesaros%2Fpristup/lists"}