S3


Basis

import boto3

s3_client = boto3.client('s3')

Object

Get Object (JSON)

response = s3_client.get_object(Bucket = 'myBucketName', Key = 'myFile.txt')

fileContent = json.loads(response['Body'].read())

Put Object (JSON)

s3_client.put_object(Bucket = 'myBucketName', Key = 'myFile.txt', Body = json.dumps('{...}'), ContentType = 'application/json')

DynamoDB


Basis

import boto3

dynamodb_client = boto3.client('dynamodb')

Query

response = dynamodb_client.query(
  TableName = "tableName",

  # Use when atribute is a reserved word, contains dot or begins with number
  ExpressionAttributeName = {
    '#myAttribute': 'myAttributeName'
  },
  # Attribute to recieve when reading (kind of SELECT column)
  ProjectionExpression = "#myAttribute"


  # Same as ExpressionAttributeName but for values in used in comparaison
  ExpressionAttributeValues = {
  ':myNumberMax': 12
  },
  # Condition for the query (kind of WHERE condition)
  KeyConditionExpression = Key('#myAttribute').gt(':myNumberMax')
)

# All Items
items = response['Items']
# Specific Item
items = response['Items'][0]['myCategory']['S']

SSM


Basis

import boto3

ssm_client = boto3.client("ssm")

Parameter

Get Parameter

response = ssm_client.get_parameter(Name='myParameterName')

parameterValue = response['Parameter']['Value']

Put Parameter

ssm_client.put_parameter(Name="myParameterName", Value="myValue", Type='String', Overwrite=True)

Security Hub


Basis

import boto3

ssm_securityhub = boto3.client('securityhub')

Controls

List Security Control IDs

paginator = securityhub.get_paginator('list_security_control_definitions')

controlsIds = paginator.paginate().search("SecurityControlDefinitions[].SecurityControlId")

Alternative to boto3 (aws-requests-auth)


Example

import requests
from aws_requests_auth.aws_auth import AWSRequestsAuth

auth = AWSRequestsAuth(aws_access_key='MY_ACCESS_KEY', aws_secret_access_key='MY_SECRET_KEY', aws_host='MY_AWS_API_HOST', aws_region='us-east-1', aws_service='execute-api')

response = requests.get('https://dqf7ti8g66.execute-api.us-east-1.amazonaws.com/api/', auth=auth)

print(response.content)