Skip to content

Commit bbab800

Browse files
authored
Merge pull request #377 from Mark-Simulacrum/sqs-s3
Initial SQS queue + user policy
2 parents d168242 + 0929263 commit bbab800

File tree

1 file changed

+72
-0
lines changed
  • terragrunt/modules/crates-io-logs

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
resource "aws_sqs_queue" "log_event_queue" {
2+
name = "cdn-log-queue"
3+
receive_wait_time_seconds = 20
4+
}
5+
6+
resource "aws_sqs_queue_policy" "s3_push" {
7+
queue_url = aws_sqs_queue.log_event_queue.id
8+
policy = data.aws_iam_policy_document.s3_push_to_queue.json
9+
}
10+
11+
data "aws_iam_policy_document" "s3_push_to_queue" {
12+
statement {
13+
sid = "allow-s3-to-push-events"
14+
effect = "Allow"
15+
principals {
16+
type = "Service"
17+
identifiers = ["s3.amazonaws.com"]
18+
}
19+
20+
actions = ["sqs:SendMessage"]
21+
22+
resources = [aws_sqs_queue.log_event_queue.arn]
23+
condition {
24+
test = "ArnLike"
25+
variable = "aws:SourceArn"
26+
values = [data.aws_arn.src_bucket.arn]
27+
}
28+
condition {
29+
test = "StringEquals"
30+
variable = "aws:SourceAccount"
31+
values = [data.aws_arn.src_bucket.account]
32+
}
33+
}
34+
}
35+
36+
data "aws_arn" "src_bucket" {
37+
arn = var.src_log_bucket_arn
38+
}
39+
40+
variable "src_log_bucket_arn" {
41+
type = string
42+
description = "Bucket ARN which will send events to the SQS queue"
43+
}
44+
45+
resource "aws_iam_user" "heroku_access" {
46+
name = "crates-io-heroku-access"
47+
}
48+
49+
resource "aws_iam_access_key" "crates_io" {
50+
user = aws_iam_user.heroku_access
51+
}
52+
53+
resouce "aws_iam_user_policy" "sqs_read" {
54+
name = "heroku-access"
55+
user = aws_iam_user.heroku_access.name
56+
}
57+
58+
data "aws_iam_policy_document" "heroku_access" {
59+
statement {
60+
sid = "allow-sqs"
61+
effect = "Allow"
62+
63+
actions = [
64+
"sqs:GetQueueAttributes",
65+
"sqs:DeleteMessage",
66+
"sqs:DeleteMessageBatch",
67+
"sqs:ReceiveMessage",
68+
]
69+
70+
resources = [aws_sqs_queue.log_event_queue.arn]
71+
}
72+
}

0 commit comments

Comments
 (0)