1
0
mirror of https://github.com/mxpv/podsync.git synced 2024-05-11 05:55:04 +00:00
mxpv-podsync/cf/podsync.yaml

86 lines
2.4 KiB
YAML
Raw Normal View History

AWSTemplateFormatVersion: "2010-09-09"
Outputs:
AccessKey:
Description: "DO user access key"
Value: !Ref DOUserKey
AccessSecret:
Description: "DO user secret key"
Value: !GetAtt DOUserKey.SecretAccessKey
Resources:
FeedsTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: !Sub "${AWS::StackName}_Feeds"
BillingMode: "PROVISIONED"
AttributeDefinitions:
- AttributeName: "HashID"
AttributeType: "S"
- AttributeName: "UserID"
AttributeType: "S"
- AttributeName: "CreatedAt"
AttributeType: "N"
KeySchema:
- AttributeName: "HashID"
KeyType: "HASH"
GlobalSecondaryIndexes:
- IndexName: "UserID-HashID-Index"
KeySchema:
- AttributeName: "UserID"
KeyType: "HASH"
- AttributeName: "CreatedAt"
KeyType: "RANGE"
Projection:
ProjectionType: "KEYS_ONLY"
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
ProvisionedThroughput:
ReadCapacityUnits: 10
WriteCapacityUnits: 5
TimeToLiveSpecification:
AttributeName: "ExpirationTime"
Enabled: true
PledgesTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: !Sub "${AWS::StackName}_Pledges"
BillingMode: "PROVISIONED"
AttributeDefinitions:
- AttributeName: "PatronID"
AttributeType: "N"
KeySchema:
- AttributeName: "PatronID"
KeyType: "HASH"
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
DOUser:
Type: AWS::IAM::User
DependsOn:
- FeedsTable
- PledgesTable
Properties:
Policies:
- PolicyName: "DynamoAccess"
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- "dynamodb:GetItem"
- "dynamodb:Query"
- "dynamodb:PutItem"
- "dynamodb:UpdateItem"
Resource:
- !GetAtt FeedsTable.Arn
- !GetAtt PledgesTable.Arn
2018-12-08 14:27:13 -08:00
- Effect: Allow
Action:
- "dynamodb:ListTables"
Resource:
- "*"
DOUserKey:
Type: AWS::IAM::AccessKey
DependsOn: DOUser
Properties:
UserName: !Ref DOUser