#!/bin/python import boto3 from pprint import pprint, pformat import json import codecs import sys import argparse import logging import uuid def parse_arguments(): parser = argparse.ArgumentParser() parser.add_argument('--accesskey', help='AWS Access key', default='') parser.add_argument('--secretkey', help='AWS Secret key', default='') parser.add_argument('--profile', help='AWS profile', default='') parser.add_argument('--region', help='AWS Default region', default='us-east-1') parser.add_argument('--path', help='', default='us-east-1') return parser.parse_args() if __name__ == "__main__": logger = logging.getLogger('') logger.setLevel(logging.DEBUG) args = parse_arguments() # Using project-specific parameters and common parameters for project group path = args.path # Initialize the client with credentials or with IAM role. if (args.accesskey and args.secretkey): secrets_client = boto3.client( 'secretsmanager', aws_access_key_id = args.accesskey, aws_secret_access_key = args.secretkey, region_name = args.region ) elif args.profile: session = boto3.Session(profile_name=args.profile) secrets_client = session.client('secretsmanager') else: secrets_client = boto3.client('secretsmanager', region_name=args.region) response = secrets_client.list_secrets() secrets = [x for x in response['SecretList'] if path in x['Name']] while 'NextToken' in response: response = secrets_client.list_secrets(NextToken=response['NextToken']) secrets += [x for x in response['SecretList'] if path in x['Name']] for secret in secrets: secret_value = secrets_client.get_secret_value(SecretId=secret['ARN'])['SecretString'] secret_name = secret['Name'] print(f"Secret name: {secret_name} Secret value: {secret_value}")