agentsclimarketplace

Aws

Skill muhammederem/chief/.claude/skills/devops/aws

Install
npx -y skills add muhammederem/chief --skill aws

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

10.8 KB, ~2.8k tokens by cl100k_base, as published. Nobody here has run it

AWS Cloud Services

Overview

Amazon Web Services (AWS) provides a comprehensive cloud platform including compute, storage, database, analytics, networking, deployment, and machine learning services.

Core Services

EC2 (Elastic Compute Cloud)

Launch Instance

import boto3

ec2 = boto3.client('ec2', region_name='us-west-2')

# Launch instance
response = ec2.run_instances(
    ImageId='ami-0c55b159cbfafe1f0',  # Amazon Linux 2
    InstanceType='t2.micro',
    MinCount=1,
    MaxCount=1,
    KeyName='my-key-pair',
    SecurityGroupIds=['sg-1234567890abcdef0'],
    SubnetId='subnet-12345678',
    UserData='''
        #!/bin/bash
        yum update -y
        yum install -y docker
        service docker start
    ''',
    TagSpecifications=[
        {
            'ResourceType': 'instance',
            'Tags': [
                {'Key': 'Name', 'Value': 'MyInstance'},
                {'Key': 'Environment', 'Value': 'Dev'}
            ]
        }
    ]
)

instance_id = response['Instances'][0]['InstanceId']
print(f"Launched instance: {instance_id}")

Manage Instances

# Describe instances
response = ec2.describe_instances(InstanceIds=[instance_id])

# Stop instance
ec2.stop_instances(InstanceIds=[instance_id])

# Terminate instance
ec2.terminate_instances(InstanceIds=[instance_id])

# Create AMI from instance
ec2.create_image(
    InstanceId=instance_id,
    Name='my-custom-ami',
    Description='My custom AMI'
)

S3 (Simple Storage Service)

Upload/Download

s3 = boto3.client('s3')

# Upload file
s3.upload_file(
    'local_file.txt',
    'my-bucket',
    'remote_file.txt',
    ExtraArgs={'ContentType': 'text/plain'}
)

# Download file
s3.download_file('my-bucket', 'remote_file.txt', 'local_file.txt')

# List objects
response = s3.list_objects_v2(Bucket='my-bucket')
for obj in response.get('Contents', []):
    print(obj['Key'])

Presigned URLs

# Generate presigned URL (valid for 1 hour)
url = s3.generate_presigned_url(
    'get_object',
    Params={'Bucket': 'my-bucket', 'Key': 'file.txt'},
    ExpiresIn=3600
)

Lambda (Serverless Functions)

Create Function

lambda_client = boto3.client('lambda')

# Create function
response = lambda_client.create_function(
    FunctionName='my-function',
    Runtime='python3.11',
    Role='arn:aws:iam::123456789012:role/lambda-role',
    Handler='lambda_function.lambda_handler',
    Code={
        'ZipFile': b'''
def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': 'Hello from Lambda!'
    }
        '''
    },
    Timeout=30,
    MemorySize=256,
)

# Invoke function
response = lambda_client.invoke(
    FunctionName='my-function',
    InvocationType='RequestResponse',
    Payload=json.dumps({'key': 'value'})
)

result = json.load(response['Payload'])
print(result)

Deploy from S3

lambda_client.update_function_code(
    FunctionName='my-function',
    S3Bucket='my-bucket',
    S3Key='lambda-deployment.zip'
)

IAM (Identity and Access Management)

Create Role

iam = boto3.client('iam')

# Create role
iam.create_role(
    RoleName='lambda-role',
    AssumeRolePolicyDocument=json.dumps({
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {"Service": "lambda.amazonaws.com"},
                "Action": "sts:AssumeRole"
            }
        ]
    })
)

# Attach policy
iam.attach_role_policy(
    RoleName='lambda-role',
    PolicyArn='arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole'
)

SageMaker (ML Model Training & Deployment)

Training Job

sagemaker = boto3.client('sagemaker')

# Create training job
sagemaker.create_training_job(
    TrainingJobName='my-training-job',
    AlgorithmSpecification={
        'TrainingImage': '763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:2.1.0-cpu-py310',
        'TrainingInputMode': 'File'
    },
    InputDataConfig=[
        {
            'ChannelName': 'training',
            'DataSource': {
                'S3DataSource': {
                    'S3DataType': 'S3Prefix',
                    'S3Uri': 's3://my-bucket/training-data/',
                    'S3DataDistributionType': 'FullyReplicated'
                }
            }
        }
    ],
    OutputDataConfig={
        'S3OutputPath': 's3://my-bucket/output/'
    },
    ResourceConfig={
        'InstanceType': 'ml.m5.xlarge',
        'InstanceCount': 1,
        'VolumeSizeInGB': 10
    },
    StoppingCondition={
        'MaxRuntimeInSeconds': 86400,
        'MaxWaitTimeInSeconds': 86400
    },
    RoleArn='arn:aws:iam::123456789012:role/SageMakerRole'
)

Deploy Model

# Create model
sagemaker.create_model(
    ModelName='my-model',
    PrimaryContainer={
        'Image': '763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:2.1.0-cpu',
        'ModelDataUrl': 's3://my-bucket/output/model.tar.gz'
    },
    ExecutionRoleArn='arn:aws:iam::123456789012:role/SageMakerRole'
)

# Create endpoint config
sagemaker.create_endpoint_config(
    EndpointConfigName='my-endpoint-config',
    ProductionVariants=[{
        'VariantName': 'AllTraffic',
        'ModelName': 'my-model',
        'InitialInstanceCount': 1,
        'InstanceType': 'ml.t2.medium'
    }]
)

# Create endpoint
sagemaker.create_endpoint(
    EndpointName='my-endpoint',
    EndpointConfigName='my-endpoint-config'
)

RDS (Relational Database Service)

Create Database

rds = boto3.client('rds')

# Create DB instance
rds.create_db_instance(
    DBInstanceIdentifier='my-database',
    DBInstanceClass='db.t3.micro',
    Engine='postgres',
    MasterUsername='admin',
    MasterUserPassword='password123',
    AllocatedStorage=20,
    VpcSecurityGroupIds=['sg-1234567890abcdef0'],
    DBSubnetGroupName='my-db-subnet-group'
)

ECS (Elastic Container Service)

Task Definition

ecs = boto3.client('ecs')

# Register task definition
ecs.register_task_definition(
    family='my-task',
    containerDefinitions=[
        {
            'name': 'my-app',
            'image': 'my-app:latest',
            'memory': 512,
            'cpu': 256,
            'essential': True,
            'portMappings': [
                {'containerPort': 8000, 'protocol': 'tcp'}
            ],
            'logConfiguration': {
                'logDriver': 'awslogs',
                'options': {
                    'awslogs-group': '/ecs/my-task',
                    'awslogs-region': 'us-west-2',
                    'awslogs-stream-prefix': 'ecs'
                }
            }
        }
    ]
)

Run Task

ecs.run_task(
    cluster='my-cluster',
    taskDefinition='my-task',
    launchType='FARGATE',
    networkConfiguration={
        'awsvpcConfiguration': {
            'subnets': ['subnet-12345678'],
            'securityGroups': ['sg-1234567890abcdef0'],
            'assignPublicIp': 'ENABLED'
        }
    }
)

Infrastructure as Code

CloudFormation Template

AWSTemplateFormatVersion: '2010-09-09'
Description: 'Sample CloudFormation template'

Parameters:
  Environment:
    Type: String
    Default: dev
    AllowedValues:
      - dev
      - prod

Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Sub '${Environment}-my-bucket'

  MyFunction:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: !Sub '${Environment}-my-function'
      Runtime: python3.11
      Handler: index.handler
      Code:
        ZipFile: |
          def handler(event, context):
            return {'statusCode': 200}
      Role: !GetAtt MyFunctionRole.Arn

  MyFunctionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

Terraform Configuration

# S3 Bucket
resource "aws_s3_bucket" "my_bucket" {
  bucket = "my-unique-bucket-name"

  tags = {
    Environment = "dev"
  }
}

# Lambda Function
resource "aws_lambda_function" "my_function" {
  function_name = "my-function"
  runtime       = "python3.11"
  handler       = "index.handler"
  role          = aws_iam_role.lambda_role.arn

  filename      = "lambda_function.zip"

  source_code_hash = filebase64sha256("lambda_function.zip")
}

# IAM Role
resource "aws_iam_role" "lambda_role" {
  name = "lambda-role"

  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = "sts:AssumeRole"
        Effect = "Allow"
        Principal = {
          Service = "lambda.amazonaws.com"
        }
      }
    ]
  })
}

# Attach policy
resource "aws_iam_role_policy_attachment" "lambda_basic" {
  role       = aws_iam_role.lambda_role.name
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
}

Monitoring & Logging

CloudWatch Logs

logs = boto3.client('logs')

# Create log group
logs.create_log_group(logGroupName='/aws/lambda/my-function')

# Put log event
logs.put_log_events(
    logGroupName='/aws/lambda/my-function',
    logStreamName='stream-name',
    logEvents=[
        {'timestamp': int(time.time() * 1000), 'message': 'Log message'}
    ]
)

CloudWatch Metrics

cloudwatch = boto3.client('cloudwatch')

# Put metric data
cloudwatch.put_metric_data(
    Namespace='MyApp',
    MetricData=[
        {
            'MetricName': 'RequestCount',
            'Value': 1,
            'Unit': 'Count',
            'Dimensions': [
                {'Name': 'Environment', 'Value': 'dev'}
            ]
        }
    ]
)

Security Best Practices

1. IAM Security

  • Follow principle of least privilege
  • Use IAM roles instead of access keys
  • Rotate credentials regularly
  • Enable MFA for root account

2. Network Security

  • Use security groups and NACLs
  • Enable VPC Flow Logs
  • Use private subnets for databases
  • Implement bastion hosts

3. Data Security

  • Enable S3 bucket encryption
  • Use KMS for encryption
  • Enable S3 bucket policies
  • Enable CloudTrail for audit

4. Cost Optimization

  • Use reserved instances for steady workloads
  • Use spot instances for fault-tolerant workloads
  • Enable S3 lifecycle policies
  • Monitor costs with Cost Explorer

Common Patterns

Serverless API

  • API Gateway → Lambda → DynamoDB

ML Pipeline

  • SageMaker for training
  • S3 for model storage
  • Lambda for inference
  • API Gateway for endpoints

Web Application

  • EC2/ECS for compute
  • RDS for database
  • S3 + CloudFront for static assets
  • Route 53 for DNS

Integration

  • Docker: Containerize applications
  • Kubernetes: EKS for orchestration
  • CI/CD: CodePipeline, CodeBuild
  • Monitoring: CloudWatch, X-Ray

Gives 0 of the 12 instructions most containers cloud skills give in ~2.8k tokens

Counted across 607 of the 657 authors here whose files we hold, read 2026-08-06

  • run containers as a non-root userin 69 of 607, across 49 files
  • use multi-stage buildsin 52 of 607, across 41 files
  • use Promise.all for independent operationsin 47 of 607, across 13 files
  • import directly instead of barrel filesin 46 of 607, across 12 files
  • use ternary instead of AND for conditionalsin 45 of 607, across 12 files
  • use Set or Map for O(1) lookupsin 42 of 607, across 10 files
  • create a .dockerignore filein 41 of 607, across 31 files
  • Read individual rule files for detailsin 39 of 607, across 9 files
  • authenticate server actions like API routesin 35 of 607, across 7 files
  • use next/dynamic for heavy componentsin 34 of 607, across 9 files
  • use React.cache for per-request deduplicationin 34 of 607, across 10 files
  • copy dependency files before source codein 34 of 607, across 21 files

Said here and by no other author read

  • Follow principle of least privilege
  • Use security groups and NACLs
  • Use private subnets for databases
  • Implement bastion hosts
  • Enable S3 bucket policies
  • Enable CloudTrail for audit

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.