def lambda_handler(event, context):
    profile_name=event['headers']['profile']
    
    
    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    iam=boto3.client('iam', region_name=str(ref.get()['region']), aws_access_key_id=str(ref.get()['access_key']), aws_secret_access_key=str(ref.get()['secret_access_key']))
    roles=iam.list_roles()
    roleslist=[]
        
    for role in roles['Roles']:
            
        name=role['RoleName']
        description=role['Description']
        roleslist.append({"Name":name})
            
        
            
    
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({
            "roles":roleslist
        }),
        "isBase64Encoded": False
    }
def lambda_handler(event, context):
    profile_name=str(event['queryStringParameters']['profile'])
    os=str(event['queryStringParameters']['os'])
    instance_type=str(event['queryStringParameters']['instance_type'])
    count=str(event['queryStringParameters']['count'])
    keyname=str(event['queryStringParameters']['keyname'])
    app=str(event['queryStringParameters']['app'])
    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    ec2=boto3.client('ec2', region_name=str(ref.get()['region']), aws_access_key_id=str(ref.get()['access_key']), aws_secret_access_key=str(ref.get()['secret_access_key']))
    
    ec2.run_instances( ImageId=str(osdict[str(os)]),
    InstanceType=str(instance_type),MaxCount=int(count),
    MinCount=int(count),KeyName=str(keyname),UserData=userdatadict[app])
  
    
    
    #print(buckets)
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({
           "instance ran successfully":os
        }),
        "isBase64Encoded": False
    }
示例#3
0
def lambda_handler(event, context):
    profile_name=event['headers']['profile']
    
    bucket_name=str(event['pathParameters']['bucket_name'])
    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    s3=boto3.client('s3', region_name=str(ref.get()['region']), aws_access_key_id=str(ref.get()['access_key']), aws_secret_access_key=str(ref.get()['secret_access_key']))
    s3.delete_bucket(Bucket=str(bucket_name))
    
    
    
    
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({
            'Successful': "Bucket deleted "
        }),
        "isBase64Encoded": False
    }
 
 #s3.create_bucket(Bucket=str(bucket_name), CreateBucketConfiguration={'LocationConstraint': 'ap-south-1'})

        
def lambda_handler(event, context):

    profile_name = event['headers']['profile']
    ref = fa.getReference(profile_name)

    s3 = boto3.client('s3',
                      region_name=str(ref.get()['region']),
                      aws_access_key_id=str(ref.get()['access_key']),
                      aws_secret_access_key=str(
                          ref.get()['secret_access_key']))
    buckets = s3.list_buckets()
    bucketlist = []
    for i in buckets['Buckets']:
        bucket = i['Name']
        bucketlist.append(bucket)
    #print(buckets)
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({'response': bucketlist}),
        "isBase64Encoded": False
    }
def lambda_handler(event, context):
    profile_name = str(event['queryStringParameters']['profile'])
    instance_id = str(event['pathParameters']['instance_id'])
    running_state = str(event['pathParameters']['running_state'])
    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)
    response = ""
    ec2 = boto3.client('ec2',
                       region_name=str(ref.get()['region']),
                       aws_access_key_id=str(ref.get()['access_key']),
                       aws_secret_access_key=str(
                           ref.get()['secret_access_key']))
    if (str(running_state) == "running"):
        ec2.start_instances(InstanceIds=[str(instance_id)])
        response = "Server" + instance_id + "Started"
    elif (str(running_state) == "stopped"):
        ec2.stop_instances(InstanceIds=[str(instance_id)])
        response = "Server" + instance_id + "stopped"

    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({"Status": response}),
        "isBase64Encoded": False
    }
def lambda_handler(event, context):
    profile_name = str(event['queryStringParameters']['profile'])
    bucket_name = str(event['pathParameters']['bucket_name'])

    ref = fa.getReference(profile_name)

    s3 = boto3.client('s3',
                      region_name=str(ref.get()['region']),
                      aws_access_key_id=str(ref.get()['access_key']),
                      aws_secret_access_key=str(
                          ref.get()['secret_access_key']))
    objectlist = []
    objects = s3.list_objects_v2(Bucket=str(bucket_name))
    print(objects)
    if (objects['KeyCount'] != 0):
        for object in objects['Contents']:
            objectlist.append(object['Key'])

    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({bucket_name: objectlist}),
        "isBase64Encoded": False
    }
示例#7
0
def lambda_handler(event, context):
    profile_name = str(event['queryStringParameters']['profile'])

    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    iam = boto3.client('iam',
                       region_name=str(ref.get()['region']),
                       aws_access_key_id=str(ref.get()['access_key']),
                       aws_secret_access_key=str(
                           ref.get()['secret_access_key']))
    groups = iam.list_groups()
    grouplist = []

    for group in groups['Groups']:

        name = group['GroupName']
        arn = group['Arn']
        grouplist.append({"Name": name, "ARN": arn})

    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({"groups": grouplist}),
        "isBase64Encoded": False
    }
示例#8
0
def lambda_handler(event, context):
    profile_name = event['headers']['profile']
    ref = fa.getReference(profile_name)

    ec2 = boto3.client('ec2',
                       region_name=str(ref.get()['region']),
                       aws_access_key_id=str(ref.get()['access_key']),
                       aws_secret_access_key=str(
                           ref.get()['secret_access_key']))
    keypairdict = {}
    keypairlist = []
    keypairs = ec2.describe_key_pairs()
    for keypair in keypairs['KeyPairs']:
        keypairlist.append(keypair['KeyName'])

    #print(buckets)
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({"keypairs": keypairlist}),
        "isBase64Encoded": False
    }
示例#9
0
def lambda_handler(event, context):
    profile_name = event['headers']['profile']

    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    iam = boto3.client('iam',
                       region_name=str(ref.get()['region']),
                       aws_access_key_id=str(ref.get()['access_key']),
                       aws_secret_access_key=str(
                           ref.get()['secret_access_key']))
    userdict = {}
    count = 0
    users = iam.list_users()
    userlist = []
    print(users)
    for user in users['Users']:
        count += 1
        name = user['UserName']
        userid = "user" + str(count)
        userlist.append({"Username": name})

    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({"users": userlist}),
        "isBase64Encoded": False
    }
def lambda_handler(event, context):
    profile_name = str(event['queryStringParameters']['profile'])
    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    ec2 = boto3.client('ec2',
                       region_name=str(ref.get()['region']),
                       aws_access_key_id=str(ref.get()['access_key']),
                       aws_secret_access_key=str(
                           ref.get()['secret_access_key']))
    serverdict = {}
    serverlist = []
    count = 0
    servers = ec2.describe_instances()
    for reservation in servers['Reservations']:
        for inst in reservation['Instances']:
            count += 1
            name = inst['InstanceId']
            state = inst['State']['Name']
            print(name)
            print(state)
            serverid = "server" + str(count)
            serverlist.append({"instance id": name, "state": state})

    #print(buckets)
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({"servers": serverlist}),
        "isBase64Encoded": False
    }
示例#11
0
def lambda_handler(event, context):
    profile_name = event['headers']['profile']

    user_name = str(event['pathParameters']['user_name'])

    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    iam = boto3.client('iam',
                       region_name=str(ref.get()['region']),
                       aws_access_key_id=str(ref.get()['access_key']),
                       aws_secret_access_key=str(
                           ref.get()['secret_access_key']))
    iam.delete_user(UserName=str(user_name))

    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({"user Deleted": user_name}),
        "isBase64Encoded": False
    }
示例#12
0
def lambda_handler(event, context):
    profile_name=str(event['queryStringParameters']['profile'])
    group_name=str(event['pathParameters']['group_name'])
    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    iam=boto3.client('iam', region_name=str(ref.get()['region']), aws_access_key_id=str(ref.get()['access_key']), aws_secret_access_key=str(ref.get()['secret_access_key']))
    group_details=iam.get_group(
         GroupName=str(group_name)
        )
    
            
    
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({
            "group Details":str(group_details)
        }),
        "isBase64Encoded": False
    }
示例#13
0
def lambda_handler(event, context):
    profile_name = str(event['queryStringParameters']['profile'])
    #profile_name = str(event["profile"])
    #profile_name = str(event['params']['querystring']['profile'])
    ref = fa.getReference(profile_name)

    s3 = boto3.client('s3',
                      region_name=str(ref.get()['region']),
                      aws_access_key_id=str(ref.get()['access_key']),
                      aws_secret_access_key=str(
                          ref.get()['secret_access_key']))
    buckets = s3.list_buckets()
    bucketlist = []
    for i in buckets['Buckets']:
        bucket = i['Name']
        bucketlist.append(bucket)

    objectdict = {}
    for i in buckets['Buckets']:
        bucket = i['Name']
        bucketlist.append(bucket)
        for bucket in bucketlist:
            print(bucket)
            objectlist = []
            objects = s3.list_objects(Bucket=str(bucket))
            print(objects)

            for object in objects['Contents']:
                objectlist.append(object['Key'])
                objectdict.update({bucket: objectlist})

    #print(buckets)
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({objectdict}),
        "isBase64Encoded": False
    }
示例#14
0
def lambda_handler(event, context):
    profile_name = event['headers']['profile']
    instance_id = str(event['pathParameters']['instance_id'])
    ref = fa.getReference(profile_name)

    ec2 = boto3.client('ec2',
                       region_name=str(ref.get()['region']),
                       aws_access_key_id=str(ref.get()['access_key']),
                       aws_secret_access_key=str(
                           ref.get()['secret_access_key']))
    ec2.terminate_instances(InstanceIds=[str(instance_id)])

    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({"server Terminated": instance_id}),
        "isBase64Encoded": False
    }
def lambda_handler(event, context):
    profile_name=event['headers']['profile']
    body=json.loads(str(event['body']))
    group_name=body['group_name']
    ref = fa.getReference(profile_name)

    iam=boto3.client('iam', region_name=str(ref.get()['region']), aws_access_key_id=str(ref.get()['access_key']), aws_secret_access_key=str(ref.get()['secret_access_key']))
    iam.create_group(GroupName=str(group_name))
    
            
    
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({
            "group Created":group_name
        }),
        "isBase64Encoded": False
    }
def lambda_handler(event, context):
    profile_name = event['headers']['profile']

    ref = fa.getReference(profile_name)
    template = '''{
    "AWSTemplateFormatVersion" : "2010-09-09",

  "Description" : "AWS CloudFormation Template Description",



  "Resources" : {
    
  }
  }'''
    cfn = boto3.client('cloudformation',
                       region_name=str(ref.get()['region']),
                       aws_access_key_id=str(ref.get()['access_key']),
                       aws_secret_access_key=str(
                           ref.get()['secret_access_key']))

    s3_bucket_type = "AWS::S3::Bucket"
    iam_user_type = "AWS::IAM::User"
    iam_group_type = "AWS::IAM::Group"

    stack = json.loads(template)
    resources = stack["Resources"]

    body = json.loads(str(event["body"]))

    resourcetypes = {
        "S3Bucket": s3_bucket_type,
        "IAMUser": iam_user_type,
        "IAMGroup": iam_group_type
    }

    def gettype(res_type):
        return resourcetypes.get(res_type, "nothing")

    for resource in body:
        resource_name = resource["resource_name"]
        print(resource_name)

        resource_type = gettype(resource["resource_type"])
        print(resource_type)
        subdict = {"Properties": {}}
        subdict["Type"] = resource_type
        for property in resource["Properties"]:
            subdict["Properties"].update({
                property:
                resource["Properties"][property]
            }  ## unsual jugaad but need to use it as I dont know the amount of properties that may come
                                         )
            #print(property)
            #print(resource["Properties"][property])## unsual jugaad but need to use it as I dont know the amount of properties that may come
        print(subdict)
        resources.update({resource_name: subdict})

    j = json.dumps(stack, indent=4)

    cfn.create_stack(StackName="test",
                     TemplateBody=str(j),
                     OnFailure='ROLLBACK',
                     EnableTerminationProtection=True,
                     Capabilities=['CAPABILITY_NAMED_IAM'])

    return {'statusCode': 200, 'body': j}