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)