SQS Queue Access Policy
SQS ๋๊ธฐ์ด ์ก์ธ์ค ์ ์ฑ ์ ๋ํ ์ข์ ์ฌ์ฉ์ฌ๋ก๊ฐ ๋ ๊ฐ ์์ต๋๋ค. ๋ฆฌ์์ค ์ ์ฑ ์ด๋ผ๋ ์ ์์ S3 ๋ฒํท์ ์ฑ ๊ณผ ์ ์ฌํฉ๋๋ค. ์ฆ JSON IAM์ ์ฑ ์ SQS๋๊ธฐ์ด์ ์ง์ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค.
- ๊ต์ฐจ ๊ณ์ ์ก์ธ์ค๋ฅผ ํ์ฉ
์ด๋ค ๊ณ์ ์ ๋๊ธฐ์ด์ด ์๊ณ ๋ค๋ฅธ ๊ณ์ฉก์ด ๊ทธ ๋๊ธฐ์ด์ ์ก์ธ์ค ํด์ผ ํ๋ค๊ณ ํ๊ณ , EC2 ์ธ์คํด์ค๊ฐ ํ๋ ์๋ค๊ณ ๊ฐ์ ํ๋ค. ๊ทธ EC2 Instance๊ฐ ๊ณ์ ๊ฐ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ผ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์๊ธด ๋๊ธฐ์ด ์ก์ธ์ค ์ ์ฑ ์ ์์ฑํ๊ณ ์ด๋ฅผ ์ฒซ ๋ฒ์งธ ๊ณ์ฉก์ SQS๋๊ธฐ์ด์ ์ฒจ๋ถํด์ผ ํ๋ค.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"AWS": ["111122223333"]},
"Action": ["sqs:ReceiveMessage"],
"Resource": "arn:aws:sqs:us-east-1:444455556666:queue1"
}]
}
์์ Queue Access Policy ๋ AWS์ ๋ณด์ ์ฃผ์ฒด๊ฐ 11112222333์ด ๋ ์ ์๊ฒ ํ์ฉํ๋ค. ๋ฐ๋ผ์ ์ด ์ ์ฑ ์ EC2 ์ธ์คํด์ค๊ฐ ๋ค๋ฅธ ๊ณ์ ์ SQS ๋๊ธฐ์ด์์ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ํฉ๋๋ค.
- S3 ์ด๋ฒคํธ ์๋ฆผ ๊ฒ์
S3 ๋ฒํท์ ๊ฐ์ฒด๋ฅผ ์ ๋ก๋ํ๋ฉด SQS๋๊ธฐ์ด์ ์๋์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค. SQS๋๊ธฐ์ด์ S3๋ฒํท์ด ๋ฉ์์ง๋ฅผ ์์ฑํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์๋์ ๊ฐ์ด ์๊ธด SQS Queue Access Policy ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"AWS": "*"},
"Action": ["sqs:SendMessage"],
"Resource": "arn:aws:sqs:<region_name>:<bucket1_owner_account_id>:<queue_name>",
"Condition": {
"ArnLike": {"aws:SourceArn": "arn:aws:s3:*:*:<bucket_name>"},
"StringEquals": {"aws:SourceAccount": "<bucket1_owner_account_id>"},
}
}]
}
์์ธํ ์ดํด๋ณด๋ฉด Action์ sqs:SendMessage์ด๊ณ Principal์ ๋ชจ๋ (*) ๊ณ์ ์ AWS ์ ๋๋ค. Condition์ ๋ฒํท์ ARN์์ค๊ฐ โbucket1โ ์ด๋ผ๋ ์ด๋ฆ์ S3๋ฒํท์ด์ด์ผ ํฉ๋๋ค. ์์ค ๊ณ์ ์ S3 ๋ฒํท์ ๊ณ์ ์์ ์์ฌ์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด S3๋ฒํท์ SQS๋๊ธฐ์ด์ ์์ฑํ ์ ์๊ฒ ๋ฉ๋๋ค.
- S3 ์ Object ๋ค์ ์์ฑ/์์ /์ญ์ ๋ฑ๋ฑ์ ์์ ์ ํ๊ฒ๋๋ฉด S3 => SQS Queue ๋ก ์ด๋ฒคํธ๋ฅผ ์ ์กํ๊ฒ ํ๋ ์ ์ฑ ์ด๋ค.
- ์ด๋ฅผ ํ์ฉํ๋ฉด ์ฌ๋ฌ๊ฐ์ง ์ํฉ์ ๋ง๋ ๋ก์ง์ ์์ฑํด์ ์ํ๋ ์์ ์ ์ํํ ์ ์๊ฒ ๋ ๊ฒ์ด๋ค.
- ๊ตฌ๊ธ๋ง ํค์๋ : How to send message S3 to SQS
- ์๋ ๋์์์ ์ฐธ๊ณ ํด๋ ์ข์
๋๊ธ๋จ๊ธฐ๊ธฐ