-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paths3.yml
115 lines (106 loc) · 2.91 KB
/
s3.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
---
AWSTemplateFormatVersion: '2010-09-09'
Description: 'S3 resources'
Parameters:
NameTag:
Type: String
ELBPrincipal:
Type: String
RetentionInDays:
Type: String
Resources:
ImagesBucket:
Type: 'AWS::S3::Bucket'
Properties:
AccessControl: PublicRead
LifecycleConfiguration:
Rules:
- Status: Enabled
ExpirationInDays: !Ref 'RetentionInDays'
Tags:
- Key: Name
Value: !Sub '${NameTag}'
EBSLogsBucket:
Type: 'AWS::S3::Bucket'
Properties:
AccessControl: Private
LifecycleConfiguration:
Rules:
- Status: Enabled
ExpirationInDays: !Ref 'RetentionInDays'
Tags:
- Key: Name
Value: !Sub '${NameTag}'
ELBLogsBucket:
Type: 'AWS::S3::Bucket'
Properties:
AccessControl: Private
LifecycleConfiguration:
Rules:
- Status: Enabled
ExpirationInDays: !Ref 'RetentionInDays'
Tags:
- Key: Name
Value: !Sub '${NameTag}'
ELBLogsBucketPolicy:
Type: 'AWS::S3::BucketPolicy'
Properties:
Bucket: !Ref 'ELBLogsBucket'
PolicyDocument:
Statement:
- Action:
- 's3:PutObject'
Effect: 'Allow'
Principal:
AWS: !Ref 'ELBPrincipal'
Resource:
- !Sub 'arn:${AWS::Partition}:s3:::${ELBLogsBucket}/*'
Outputs:
S3StackName:
Value: !Ref 'AWS::StackName'
Export:
Name: !Sub 'S3StackName-${AWS::StackName}'
ImagesBucket:
Value: !Ref 'ImagesBucket'
Export:
Name: !Sub 'ImagesBucket-${AWS::StackName}'
ImagesBucketArn:
Value: !GetAtt ImagesBucket.Arn
Export:
Name: !Sub 'ImagesBucketArn-${AWS::StackName}'
ImagesBucketDomainName:
Value: !GetAtt ImagesBucket.DomainName
Export:
Name: !Sub 'ImagesBucketDomainName-${AWS::StackName}'
EBSLogsBucket:
Value: !Ref 'EBSLogsBucket'
Export:
Name: !Sub 'EBSLogsBucket-${AWS::StackName}'
EBSLogsBucketArn:
Value: !GetAtt EBSLogsBucket.Arn
Export:
Name: !Sub 'EBSLogsBucketArn-${AWS::StackName}'
EBSLogsBucketDomainName:
Value: !GetAtt EBSLogsBucket.DomainName
Export:
Name: !Sub 'EBSLogsBucketDomainName-${AWS::StackName}'
EBSLogsBucketDualStackDomainName:
Value: !GetAtt EBSLogsBucket.DualStackDomainName
Export:
Name: !Sub 'EBSLogsBucketDualStackDomainName-${AWS::StackName}'
ELBLogsBucket:
Value: !Ref 'ELBLogsBucket'
Export:
Name: !Sub 'ELBLogsBucket-${AWS::StackName}'
ELBLogsBucketArn:
Value: !GetAtt ELBLogsBucket.Arn
Export:
Name: !Sub 'ELBLogsBucketArn-${AWS::StackName}'
ELBLogsBucketDomainName:
Value: !GetAtt ELBLogsBucket.DomainName
Export:
Name: !Sub 'ELBLogsBucketDomainName-${AWS::StackName}'
ELBLogsBucketDualStackDomainName:
Value: !GetAtt ELBLogsBucket.DualStackDomainName
Export:
Name: !Sub 'ELBLogsBucketDualStackDomainName-${AWS::StackName}'