Skip to main content

Cloud Auxiliary (lite) is a python wrapper and orchestration module for interacting with cloud providers

Project description

cloudaux-lite

Version

Special Note: This is a slimmed-down fork of Netflix-Skunkworks/cloudaux

The original source for CloudAux is mostly not supported and contains a lot of code that has breaking changes with updates to boto over time. It also contained support for non-AWS cloud providers which have breaking library changes over time as well. This fork removes all the problematic components and non-supported components to make this library only consist of AWS support for the following very simple things:

  1. Decorator for STS role assumption
  2. Decorator for pagination
  3. The CloudAux object

What was removed?

This fork removed the following components:

  • All things non AWS, like GCP, Azure, and OpenStack
  • The orchestration logic
  • The iter_account_region decorator
  • The rate_limited decorator

The primary things left are:

  • The sts_conn decorator
  • The pagination decorator
  • The CloudAux class

If you use the above 3 things only, then this is a drop-in replacement. The imports and everything are exactly the same. Simply pip install cloudaux-lite instead of cloudaux and you should be good to go!

Older support?

If you have a need to supporting the older CloudAux stuff, then continue using the Netflix cloudaux package version < 2.

Features

  • Intelligent connection caching.
  • Handles pagination for certain client methods.
  • Multi-account sts:assumerole abstraction.

Install

pip install cloudaux-lite

AWS Example

# Using the CloudAux class
from cloudaux import CloudAux
CloudAux.go('kms.client.list_aliases', **conn_details)

ca = CloudAux(**conn_details)
ca.call('kms.client.list_aliases')

# directly asking for a boto3 connection:
from cloudaux.aws.sts import boto3_cached_conn
conn = boto3_cached_conn('ec2', **conn_details)

# Over your entire environment:
from cloudaux.decorators import iter_account_region

accounts = ['000000000000', '111111111111']

conn_details = {
    'assume_role': 'MyRole',
    'session_name': 'MySession',
    'conn_type': 'boto3'
}

# If you want your role to be read-only, you can assume your role and add the read_only flag to connection details
# to inherit the AWS ReadOnlyAccess policy. This flag defaults to False
# The permissions from the role being assumed will be limited to Read and List only
conn_details = {
    'account_number': '111111111111',
    'assume_role': 'MyRole',
    'session_name': 'MySession',
    'region': 'us-east-1',
    'read_only': True
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudaux-lite-1.0.0.tar.gz (12.5 kB view hashes)

Uploaded Source

Built Distribution

cloudaux_lite-1.0.0-py2.py3-none-any.whl (11.8 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page