[build] clean up cloudformation template and policies

This commit is contained in:
Zachariah Mully
2019-06-13 12:10:09 -04:00
committed by Jason Wray
parent 4c896cbb31
commit ca4e3650c0
2 changed files with 117 additions and 223 deletions

View File

@@ -1,223 +0,0 @@
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "mapbox-gl-native travis resources",
"Resources": {
"BuildUser": {
"Type": "AWS::IAM::User",
"Properties": {
"Policies": [
{
"PolicyName": "list-testing",
"PolicyDocument": {
"Statement": [
{
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mapbox"
],
"Condition": {
"StringLike": {
"s3:prefix": "mapbox-gl-native/*"
}
}
}
]
}
},
{
"PolicyName": "build-testing",
"PolicyDocument": {
"Statement": [
{
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mapbox/mapbox-gl-native/*"
]
}
]
}
},
{
"PolicyName": "list-node",
"PolicyDocument": {
"Statement": [
{
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mapbox-node-binary"
],
"Effect": "Allow"
}
]
}
},
{
"PolicyName": "build-node",
"PolicyDocument": {
"Statement": [
{
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::mapbox-node-binary/@mapbox/mapbox-gl-native/*"
],
"Effect": "Allow"
}
]
}
},
{
"PolicyName": "cloudwatch-metrics",
"PolicyDocument": {
"Statement": [
{
"Action": [
"cloudwatch:PutMetricData",
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
},
{
"PolicyName": "get-signing-key",
"PolicyDocument": {
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mapbox/android/signing-credentials/secring.gpg"
]
}
]
}
},
{
"PolicyName": "publish-metrics",
"PolicyDocument": {
"Statement": [
{
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectAcl"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mapbox-loading-dock/raw/mobile.binarysize/*",
"arn:aws:s3:::mapbox-loading-dock/raw/mobile.codecoverage/*",
"arn:aws:s3:::mapbox-loading-dock/raw/mobile_staging.docs_coverage/*",
"arn:aws:s3:::mapbox-loading-dock/raw/mobile_staging.codecoverage/*",
"arn:aws:s3:::mapbox-loading-dock/raw/mobile_staging.github_stats/*"
]
}
]
}
},
{
"PolicyName": "list-loading-dock",
"PolicyDocument": {
"Statement": [
{
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mapbox-loading-dock"
],
"Effect": "Allow"
}
]
}
},
{
"PolicyName": "cloudwatch-metrics",
"PolicyDocument": {
"Statement": [
{
"Action": [
"cloudwatch:PutMetricData",
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
},
{
"PolicyName": "publish-nightlies",
"PolicyDocument": {
"Statement": [
{
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::mapbox/mapbox-gl-native/ios/builds/*"
]
}
]
}
}
]
}
},
"BuildUserKey": {
"Type": "AWS::IAM::AccessKey",
"Properties": {
"UserName": {
"Ref": "BuildUser"
}
}
}
},
"Outputs": {
"AccessKeyId": {
"Value": {
"Ref": "BuildUserKey"
}
},
"SecretAccessKey": {
"Value": {
"Fn::GetAtt": [
"BuildUserKey",
"SecretAccessKey"
]
}
}
}
}

View File

@@ -0,0 +1,117 @@
'use strict';
const template = {
AWSTemplateFormatVersion: '2010-09-09',
Description: 'mapbox-gl-native travis resources',
Resources: {
BuildUser: {
Type: 'AWS::IAM::User',
Properties: {
Policies: [
{
PolicyName: 'listBuckets',
PolicyDocument: {
Statement: [
{
Action: [ 's3:ListBucket' ],
Effect: 'Allow',
Resource: [ 'arn:aws:s3:::mapbox' ],
Condition: { StringLike: { 's3:prefix': 'mapbox-gl-native/*' } }
},
{
Action: [ 's3:ListBucket' ],
Resource: [ 'arn:aws:s3:::mapbox-node-binary' ],
Effect: 'Allow'
},
{
Action: [ 's3:ListBucket' ],
Resource: [ 'arn:aws:s3:::mapbox-loading-dock' ],
Effect: 'Allow'
}
]
}
},
{
PolicyName: 'build-testing',
PolicyDocument: {
Statement: [
{
Action: [
's3:GetObject',
's3:GetObjectAcl',
's3:PutObject',
's3:PutObjectAcl'
],
Effect: 'Allow',
Resource: [
'arn:aws:s3:::mapbox/mapbox-gl-native/*',
'arn:aws:s3:::mapbox-node-binary/@mapbox/mapbox-gl-native/*',
'arn:aws:s3:::mapbox/mapbox-gl-native/ios/builds/*'
]
}
]
}
},
{
PolicyName: 'cloudwatch-metrics',
PolicyDocument: {
Statement: [
{
Action: [
'cloudwatch:PutMetricData',
'cloudwatch:GetMetricData',
'cloudwatch:GetMetricStatistics'
],
Effect: 'Allow',
Resource: [ '*' ]
}
]
}
},
{
PolicyName: 'get-signing-key',
PolicyDocument: {
Statement: [
{
Action: [ 's3:GetObject' ],
Effect: 'Allow',
Resource: [
'arn:aws:s3:::mapbox/android/signing-credentials/secring.gpg'
]
}
]
}
},
{
PolicyName: 'publish-metrics',
PolicyDocument: {
Statement: [
{
Action: [ 's3:PutObject', 's3:GetObject', 's3:GetObjectAcl' ],
Effect: 'Allow',
Resource: [
'arn:aws:s3:::mapbox-loading-dock/raw/mobile.binarysize/*',
'arn:aws:s3:::mapbox-loading-dock/raw/mobile.codecoverage/*',
'arn:aws:s3:::mapbox-loading-dock/raw/mobile_staging.docs_coverage/*',
'arn:aws:s3:::mapbox-loading-dock/raw/mobile_staging.codecoverage/*',
'arn:aws:s3:::mapbox-loading-dock/raw/mobile_staging.github_stats/*'
]
}
]
}
}
]
}
},
BuildUserKey: {
Type: 'AWS::IAM::AccessKey',
Properties: { UserName: { Ref: 'BuildUser' } }
}
},
Outputs: {
AccessKeyId: { Value: { Ref: 'BuildUserKey' } },
SecretAccessKey: { Value: { 'Fn::GetAtt': [ 'BuildUserKey', 'SecretAccessKey' ] } }
}
};
module.exports = template;