Skip to content

Commit 9ead19f

Browse files
committed
Add expected bucket owner to respective operations
1 parent 22aeda4 commit 9ead19f

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

handler.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
RSS_FEEDS_URLS = os.getenv("RSS_FEEDS_URLS")
1919
BUCKET = os.getenv("RSS_FEEDS_BUCKET")
2020
TOPIC_ARN = os.getenv("RSS_FEEDS_TOPIC_ARN")
21+
ACCOUNT_ID = os.getenv("AWS_ACCOUNT_ID")
2122

2223
NOTIFICATION_SUBJECT = "New RSS Feed Entries"
2324

@@ -94,7 +95,7 @@ def create_feed_file_key(url: str) -> str:
9495
def get_old_entries(key: str) -> List[dict]:
9596
try:
9697
logger.info(f"Getting object {key}")
97-
response = s3.get_object(Bucket=BUCKET, Key=key)
98+
response = s3.get_object(Bucket=BUCKET, Key=key, ExpectedBucketOwner=ACCOUNT_ID)
9899
data = json.loads(response["Body"].read().decode("utf-8"))
99100
return data.get("entries", [])
100101
except s3.exceptions.NoSuchKey:
@@ -108,7 +109,7 @@ def update_old_entries(entries: List[dict], key: str):
108109
try:
109110
logger.info(f"Updating object {key}")
110111
data = json.dumps({"entries": entries})
111-
s3.put_object(Bucket=BUCKET, Key=key, Body=data)
112+
s3.put_object(Bucket=BUCKET, Key=key, Body=data, ExpectedBucketOwner=ACCOUNT_ID)
112113
except Exception:
113114
logger.exception(f"Error updating object {key}")
114115

terraform/lambda.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ resource "aws_lambda_function" "rss_handler" {
1313
RSS_FEEDS_URLS = var.rss_feeds_urls
1414
RSS_FEEDS_BUCKET = aws_s3_bucket.rss_feeds_bucket.bucket
1515
RSS_FEEDS_TOPIC_ARN = aws_sns_topic.rss_feeds_topic.arn
16+
AWS_ACCOUNT_ID = data.aws_caller_identity.current.account_id
1617
}
1718
}
1819

0 commit comments

Comments
 (0)