All Projects → awslabs → Awsprocesscreds

awslabs / Awsprocesscreds

Licence: apache-2.0
Process credential providers for AWS SDKs and Tools

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Awsprocesscreds

Awesome Aws
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.
Stars: ✭ 9,895 (+7944.72%)
Mutual labels:  aws, cloud, aws-cli, iam
Aws Cli
Universal Command Line Interface for Amazon Web Services
Stars: ✭ 11,804 (+9496.75%)
Mutual labels:  aws, cloud, aws-cli
Iamy
A cli tool for importing and exporting AWS IAM configuration to YAML files
Stars: ✭ 200 (+62.6%)
Mutual labels:  aws, aws-cli, iam
Trailscraper
A command-line tool to get valuable information out of AWS CloudTrail
Stars: ✭ 352 (+186.18%)
Mutual labels:  aws, cloud, iam
Aws Shell
An integrated shell for working with the AWS CLI.
Stars: ✭ 6,359 (+5069.92%)
Mutual labels:  aws, cloud, aws-cli
Aws
A collection of bash shell scripts for automating various tasks with Amazon Web Services using the AWS CLI and jq.
Stars: ✭ 493 (+300.81%)
Mutual labels:  aws, aws-cli, iam
Prowler
Prowler is a security tool to perform AWS security best practices assessments, audits, incident response, continuous monitoring, hardening and forensics readiness. It contains more than 200 controls covering CIS, ISO27001, GDPR, HIPAA, SOC2, ENS and other security frameworks.
Stars: ✭ 4,561 (+3608.13%)
Mutual labels:  aws, cloud, aws-cli
Saws
A supercharged AWS command line interface (CLI).
Stars: ✭ 4,886 (+3872.36%)
Mutual labels:  aws, cloud, aws-cli
Awless
A Mighty CLI for AWS
Stars: ✭ 4,821 (+3819.51%)
Mutual labels:  aws, cloud, aws-cli
Cloudsplaining
Cloudsplaining is an AWS IAM Security Assessment tool that identifies violations of least privilege and generates a risk-prioritized report.
Stars: ✭ 1,057 (+759.35%)
Mutual labels:  aws, cloud, iam
Policy sentry
IAM Least Privilege Policy Generator
Stars: ✭ 1,284 (+943.9%)
Mutual labels:  aws, cloud, iam
Adaptdl
Resource-adaptive cluster scheduler for deep learning training.
Stars: ✭ 100 (-18.7%)
Mutual labels:  aws, cloud
Mist Ce
Mist is an open source, multi-cloud management platform
Stars: ✭ 1,391 (+1030.89%)
Mutual labels:  aws, cloud
Playwright Aws Lambda
Support for running Microsoft's Playwright on AWS Lambda and Google Cloud Functions
Stars: ✭ 107 (-13.01%)
Mutual labels:  aws, cloud
Seldon Server
Machine Learning Platform and Recommendation Engine built on Kubernetes
Stars: ✭ 1,435 (+1066.67%)
Mutual labels:  aws, cloud
Learning Cloud
List of resources - courses, sample code, articles and screencasts for learning AWS, Azure, GCP and Alibaba Cloud
Stars: ✭ 100 (-18.7%)
Mutual labels:  aws, cloud
Linchpin
ansible based multicloud orchestrator
Stars: ✭ 107 (-13.01%)
Mutual labels:  aws, cloud
Cipheridaas
CipherIDaaS —— Open-source IDaaS/IAM product by CipherChina , Hangzhou .
Stars: ✭ 121 (-1.63%)
Mutual labels:  iam, saml2
Aws Toolbox
A collection of DevOps tools including shell & python scripts that automate the boring stuff in AWS.
Stars: ✭ 89 (-27.64%)
Mutual labels:  aws, aws-cli
Gocloud
☁️ Go API for open cloud
Stars: ✭ 112 (-8.94%)
Mutual labels:  aws, cloud

================================ AWS Process Credential Providers

.. image:: https://travis-ci.org/awslabs/awsprocesscreds.svg?branch=master :target: https://travis-ci.org/awslabs/awsprocesscreds

A collection of process-based credential providers to be used with the AWS CLI and related tools.

This is an experimental package, breaking changes may occur on any minor version bump.

Installation

The easiest way to install is to use pip::

pip install awsprocesscreds

Requirements


This package requires a version of python to be installed. Currently supported
python versions are:

* 2.7.9+
* 3.3.x
* 3.4.x
* 3.5.x
* 3.6.x


SAML Forms-Based Authentication
-------------------------------

If you have a SAML identity provider, you can use `awsprocesscreds-saml` to
configure programmatic access to your AWS resources. It has four required
arguments:

* ``-e / --endpoint`` - Your SAML idp endpoint.
* ``-u / --username`` - Your SAML username.
* ``-p / --provider`` - The name of your SAML provider. Currently okta and
  adfs are supported.
* ``-a / --role-arn``- The role arn you wish to assume. Your SAML provider
  must be configured to give you access to this arn.


This will cache your credentials by default, which will allow you to run
multiple commands without having to enter your password each time. You can
disable the cache by specifying ``--no-cache``.

Additionally, you can show logs by specifying ``-v`` or ``--verbose``.

To configure this provider, you need create a profile using the
``credential_process`` config variable. See the `AWS CLI Config docs`_
for more details on this config option.


Example okta configuration::

    [profile okta]
    region = us-west-2
    credential_process = awsprocesscreds-saml -e https://example.okta.com/home/amazon_aws/blob/123 -u '[email protected]' -p okta -a arn:aws:iam::123456789012:role/okta-dev

Example adfs configuration::

    [profile adfs]
    region = us-west-2
    credential_process = awsprocesscreds-saml -e 'https://corp.example.com/adfs/ls/IdpInitiatedSignOn.aspx?loginToRp=urn:amazon:webservices' -u Monty -p adfs -a arn:aws:iam::123456789012:role/ADFS-Dev

.. _AWS CLI Config docs: http://docs.aws.amazon.com/cli/latest/topic/config-vars.html#cli-aws-help-config-vars


Custom Providers
----------------

The mechanism this package uses to provide credentials is generally available,
and not specific to this package. It can be used to implement any custom
credential provider that will work with the AWS CLI, boto3, and other SDKs as
they implement support.

A detailed breakdown of this mechanism along with a live demo of implementing a
credential provider that hooks into the macOS keychain can be seen on this
recorded talk from re:Invent 2017:
`AWS CLI: 2107 and Beyond <https://youtu.be/W8IyScUGuGI?t=1260>`_

The CLI will call the process provided as the value for ``credential_process``.
This process must return credentials on stdout in the following JSON form::

   {
      "Version": 1,
      "AccessKeyId": "string",
      "SecretAccessKey": "string",
      "SessionToken": "string",
      "Expiration": "2019-01-31T21:45:41+00:00"
   }

Where ``Expiration`` is an RFC 3339 compatible timestamp. As the expiration
time nears, the process will be called again to get a new set of credentials.
The ``Version`` denotes the version of this format, whose only current valid
value is ``1``. The remaining keys are the AWS credentials you wish to use.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].