All Projects β†’ cloudtools β†’ Awacs

cloudtools / Awacs

Licence: bsd-2-clause
Python library for AWS Access Policy Language creation

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Awacs

assume-role-arn
πŸ€–πŸŽ©assume-role-arn allows you to easily assume an AWS IAM role in your CI/CD pipelines, without worrying about external dependencies.
Stars: ✭ 54 (-84.12%)
Mutual labels:  aws-iam
desktop
A native GUI application that makes it easy to explore and test Serverless Framework applications built on AWS Lambda.
Stars: ✭ 42 (-87.65%)
Mutual labels:  aws-iam
hallow
Hallow is a SSH Certificate Authority designed for use with AWS native environments
Stars: ✭ 53 (-84.41%)
Mutual labels:  aws-iam
aws-missing-tools
Random tools I've written to make life easier using AWS, namely aws-choose-profile and aws-mfa-login
Stars: ✭ 46 (-86.47%)
Mutual labels:  aws-iam
grpc-vpn
πŸ„ VPN supporting authentication such as Google OpenID Connect or AWS IAM ..., over GRPC.
Stars: ✭ 49 (-85.59%)
Mutual labels:  aws-iam
terraform-aws-account
🌳 A sustainable Terraform Package which creates Account & IAM resources on AWS
Stars: ✭ 18 (-94.71%)
Mutual labels:  aws-iam
Aws Csa Notes 2018
My AWS Certified Solutions Architect Associate Study Notes!
Stars: ✭ 167 (-50.88%)
Mutual labels:  aws-iam
Terraform Aws Iam
Terraform module which creates IAM resources on AWS
Stars: ✭ 314 (-7.65%)
Mutual labels:  aws-iam
masl
Assume an AWS Role using Onelogin
Stars: ✭ 24 (-92.94%)
Mutual labels:  aws-iam
stsauth
A CLI tool that allows easy generation of AWS credentials using STS, ADFS, and Active Directory.
Stars: ✭ 18 (-94.71%)
Mutual labels:  aws-iam
terraform-aws-enforce-mfa
A terraform module to enforce MFA for AWS groups and users
Stars: ✭ 24 (-92.94%)
Mutual labels:  aws-iam
holochrome
Use your IAM role (from instance metadata) to open the AWS console
Stars: ✭ 102 (-70%)
Mutual labels:  aws-iam
aws-iam-operator
AWS IAM Operator for Kubernetes
Stars: ✭ 23 (-93.24%)
Mutual labels:  aws-iam
AWSXenos
AWSXenos will list all the trust relationships in all the IAM roles and S3 buckets
Stars: ✭ 57 (-83.24%)
Mutual labels:  aws-iam
Awesome Aws Workshops
(Unofficial) curated list of awesome workshops found around in the internet. As we all have been there, finding that workshop that you have just attended shouldn't be hard. The idea is to provide an easy central repository, in a collaborative way.
Stars: ✭ 302 (-11.18%)
Mutual labels:  aws-iam
Aws Iam Generator
Generate Multi-Account IAM users/groups/roles/policies from a simple YAML configuration file and Jinja2 templates.
Stars: ✭ 191 (-43.82%)
Mutual labels:  aws-iam
iam4kube
AWS IAM support for Kubernetes
Stars: ✭ 22 (-93.53%)
Mutual labels:  aws-iam
Aws Security Workshops
A collection of the latest AWS Security workshops
Stars: ✭ 332 (-2.35%)
Mutual labels:  aws-iam
Airiam
Least privilege AWS IAM Terraformer
Stars: ✭ 304 (-10.59%)
Mutual labels:  aws-iam
cloud-cheat-sheets
My handmade cheat-sheets for different AWS services.
Stars: ✭ 63 (-81.47%)
Mutual labels:  aws-iam

===== awacs

.. image:: https://img.shields.io/pypi/v/awacs.svg :target: https://pypi.python.org/pypi/awacs

.. image:: https://travis-ci.org/cloudtools/awacs.png?branch=master :target: https://travis-ci.org/cloudtools/awacs

.. image:: https://img.shields.io/pypi/l/awacs.svg :target: https://opensource.org/licenses/BSD-2-Clause

About

awacs - Amazon Web Access Control Subsystem

The awacs library allows for easier creation of AWS Access Policy Language JSON by writing Python code to describe the AWS policies. To facilitate catching policy format or JSON errors early the library has property and type checking built into the classes.

NOTE: The old awacs.aws.Policy object is going to be deprecated in the future, in preference for the awacs.aws.PolicyDocument class. This is due to confusion that arises between the old object and troposphere.iam.Policy objects.

Installation

awacs can be installed using the pip distribution system for python by issuing:

.. code-block:: sh

$ pip install awacs

Alternatively, you can run use setup.py to install by cloning this repository and issuing:

.. code-block:: sh

$ python setup.py install

Examples

An example to use this comes from the AWS IAM_ documentation. This shows creating policy attached to an Amazon S3 bucket:

.. code-block:: python

from awacs.aws import Action, Allow, PolicyDocument, Principal, Statement from awacs.iam import ARN as IAM_ARN from awacs.s3 import ARN as S3_ARN

account = "123456789012" user = "user/Bob"

pd = PolicyDocument( Version="2012-10-17", Id="S3-Account-Permissions", Statement=[ Statement( Sid="1", Effect=Allow, Principal=Principal("AWS", [IAM_ARN(user, '', account)]), Action=[Action("s3", "")], Resource=[S3_ARN("my_corporate_bucket/"),], ), ], ) print(pd.to_json())

would produce this json policy:

.. code-block:: json

{ "Id": "S3-Account-Permissions", "Statement": [ { "Action": [ "s3:" ], "Effect": "Allow", "Principal": [ { "AWS": [ "arn:aws:iam::123456789012:user/Bob" ] } ], "Resource": [ "arn:aws:s3:::my_corporate_bucket/" ], "Sid": "1" } ], "Version": "2012-10-17" }

Community

We have a google group, cloudtools-dev_, where you can ask questions and engage with the cloudtools/awacs community. Issues & pull requests are always welcome!

.. _AWS IAM: http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html .. _cloudtools-dev: https://groups.google.com/forum/#!forum/cloudtools-dev

Contributing new actions

To update actions there is a generator tool which will scrape policies from AWS's documentation resource and auto-generate new files. The following commands can be run (with Python 3.7+) to update the repo:

.. code-block:: sh

$ python3 -m pip install -r scrape/requirements.txt $ python3 -m pip install . $ python3 ./scrape/scrape.py $ git diff

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].