AWS IAM ์ฌ์ฉ์ ๋ฆฌ์ ์ ํํ๊ธฐ
์๋ ํ์ธ์ Mambo ์ ๋๋ค.
ํ์ฌ์ ์๋ ์ฑ ๋ค ์ค ํ๋ ฅ์ ๊ฐ๋ฐ๋ก ์ด๋๋ AWS ์ค์ฒ ๊ธฐ์ ์ด๋ผ๋ ์ฑ ์ ์ฝ์ด๋ณด๊ณ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ฐพ์ผ๋ฉด์ AWS ํ์ฉ ๋ฐฉ์์ ๋ํด ๊ณต๋ถํ๊ณ ์์ต๋๋ค.
AWS ํ๋ฆฌ ํฐ์ด ๋๋ AWS ์๋น์ค๋ฅผ ํ์ตํ๋ ์ฌ๋์ด๋ผ๋ฉด ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๊ณ ์๋ ๋ฃจํธ ์ฌ์ฉ์ ๊ณ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๊ฒ๋๋ค. ์ค๋ฌด ํ๊ฒฝ์์๋ ํ์ฌ์ ๋ฃจํธ ์ฌ์ฉ์ ๊ณ์ ์ด ์๋ IAM์ ํตํด ์ง๋ฌด ๋๋ ํน์ ๊ถํ์ ๊ฐ์ง๋ ์ฌ์ฉ์๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํ๊ฒ ์ฃ . ๋ณด์ ๋ฑ๊ธ์ด ๋๊ฑฐ๋ ์ฒด๊ณ์ ์ธ ํ์ฌ๋ผ๋ฉด AWS ๋ฆฌ์์ค์ ๋ํ ์ ์ฑ ์ ๊ฒํ ํ๊ณ ๋ถ์ฌํ๊ฒ ์ง๋ง ์ ๊ฐ ๋ค๋๊ณ ์๋ ํ์ฌ์ ํ์์๋ ๋ชจ๋ ๊ถํ์ ๋ถ์ฌํ ์ฌ์ฉ์๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ ๋ณด์๊ณ ์ง์๋ง๋ค ๊ถํ์ ๋ถ์ฌํ ์ ์๋๋ก ์ฌ์ฉ์๋ฅผ ๋ฐ๊ธํด๋ฌ๋ผ๊ณ ์์ฒญํ์ฌ ์ฌ์ฉํ๊ณ ๋ ์์ต๋๋ค.
๋ฃจํธ ์ฌ์ฉ์ ๊ณ์ ์ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํด๋ ๊ถํ ์ ์ฑ ์ ๊ฒํ ํ๊ณ ๋ถ์ฌํ๋ ๊ฒ์ด ๊ท์ฐฎ์ ๊ฑด ๋ง์ต๋๋ค. ๊ฒฐ๊ตญ ์ฌ์ฉ์์๊ฒ ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๋ ์ ์ฑ ์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
AWS์ ๊ฐ์ ํด๋ผ์ฐ๋ ์๋น์ค๋ ๋ค์ํ ์ง์ญ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ ์ผํฐ์ ์์์ ์์ฑํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ๊ณ์ ์ ๋ณด๊ฐ ์ ์ถ๋๋ค๋ฉด ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฆฌ์ ์ด ์๋ ๊ณณ์ AWS ๋ฆฌ์์ค๊ฐ ์์ฑ๋๊ณ ์๊ธ์ด ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ต๋๋ค. ์ผ๋ถ ์๊ธ ํญํ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๋ถ๋ค๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ์์ธ ๋ฆฌ์ ์ ๋ํ ๋ฆฌ์์ค๋ง ์ฒดํฌํ ์ํ๋ก ์๋ค๊ฐ ์ ํ ์ฌ์ฉํ์ง ์๊ณ ์๋ ๋ฆฌ์ ์ ์คํ๋ AWS ๋ฆฌ์์ค๋ก ์ธํ์ฌ ๋ฐ์ํ๋ ์๊ธ์ผ๋ก ๋นํฉํ๋ ๊ฒฝ์ฐ๋ ๋ง์ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ๊ธ์์๋ IAM ์ฌ์ฉ์์ ๊ณ์ ์ ๋ณด๊ฐ ์ ์ถ๋๋๋ผ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฆฌ์ ๋ง ์ ๊ทผํ ์ ์๋๋ก ์ ํํ์ฌ ๋ถํ์ํ ๋ฆฌ์ ์ AWS ๋ฆฌ์์ค๊ฐ ๋๋ ๋ชจ๋ฅด๊ฒ ์์ฑ๋์ง ์๋๋ก ๋ฐฉ์งํ๋ ๋์ฑ ์ ์ค์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฝ๋๋ค.
AWS IAM
IAM(Identity and Access Management)์ ์ฌ์ฉ์์ ์ ์์ ํ์ธํ๊ฑฐ๋ ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค ๊ถํ์ ํตํฉ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๋งํฉ๋๋ค. AWS IAM๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์กฐ์ง์ ๊ตฌ์ฑํ๊ฑฐ๋ ์ฅ๊ธฐ ๋๋ ์์์ ์ผ๋ก AWS ๋ฆฌ์์ค ๊ถํ์ ๋ถ์ฌํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
IAM ์ฌ์ฉ์
AWS IAM์ ์ฌ์ฉ์๋ AWS ๋ฆฌ์์ค์ ๋ํ ์ฅ๊ธฐ์ ์ธ ๊ถํ์ ๊ฐ์ง๋๋ก ๊ตฌ์ฑํ๋ ์ฅ๊ธฐ ์๊ฒฉ ์ฆ๋ช ์ ๋๋ค.
๋จผ์ , ํ ์คํธ๋ฅผ ์ํ IAM ์ฌ์ฉ์์ธ pika๋ฅผ ๋ง๋ค๊ฒ ์ต๋๋ค. pika๋ ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๋ ์ง๋ฌด ์ ์ฑ ์ธ AdminisratorAccess๋ฅผ ๊ฐ์ง๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
pika๋ AWS์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ด๋ฆฌํ ์ ์ฑ ์ธ AdministratorAccess์ IAMUserChangePassword์ ๊ฐ์ง๊ฒ ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ฉด pika ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ๊ฐ ์ ์ถ๋์ด ๋๊ตฐ๊ฐ๊ฐ AWS ์ฝ์์ ์ ์ํ ์ ์๊ฒ ๋๋ค๋ฉด ์ ๋ง์ ๋ฆฌ์ ์ VPC๋ฅผ ์์ฑํ๊ฑฐ๋ EC2 ์ธ์คํด์ค๋ฅผ ์คํํ ์ ์๋ ์ํ๊ฐ ๋ฉ๋๋ค.
IAM ์ฌ์ฉ์ ๋ฆฌ์ ์ ํ
๋ง์ฝ pika๋ผ๋ ์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ํ๊ธฐ ์ํ ๊ตฌ์ฑ์ ์์ธ(ap-northeast-2) ๋ฆฌ์ ์์๋ง ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํด๋ณธ๋ค๋ฉด ๋ค๋ฅธ ๋ฆฌ์ ์ ๋ํ ๊ถํ์ ๋ถํ์ํ๊ฒ ์ฃผ๊ณ ์๋ ์ํ๊ฐ ๋ฉ๋๋ค.
aws:RequestedRegion
IAM ์ ์ฑ ์ ์ ์ํ ๋ aws:RequestedRegion๋ ๊ธ๋ก๋ฒ ์กฐ๊ฑด ํค๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ๋ฆฌ์ ์ ๋ํด์๋ง ๊ถํ์ ๊ฐ์ง๋๋ก ์ ํํ ์ ์์ต๋๋ค.
๋ง์ฝ, ์์ธ ๋ฆฌ์ ๋ง ๊ถํ์ ๋ถ์ฌํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์กฐ๊ฑด์ ์ ์ ์ํ๋ฉด ๋ฉ๋๋ค.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": [
"ap-northeast-2"
]
}
}
}
]
}
๊ธฐ์กด์ ์ฐ๊ฒฐํ์๋ AdministratorAccess๋ผ๋ ์ง๋ฌด ์ ์ฑ ์ ํด์ ํ๊ณ AdministratorAccessOnlySeoul์ด๋ผ๋ ์ ์ฑ ์ ๋ง๋ค์ด์ ์ฐ๊ฒฐํ๊ฒ ์ต๋๋ค.
๋ฆฌ์ ์ ํ ํ์ธ
pika ์ฌ์ฉ์๋ ์์ธ ๋ฆฌ์ ์ ๋ํ ๊ถํ๋ง ๊ฐ์ง๋๋ก ์ ํ๋์๊ธฐ ๋๋ฌธ์ ์ ๋ง๋ก ๊ทธ๋ฌํ ์ํ๊ฐ ๋๋์ง ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
์ฐ๊ฒฐ๋์ง ์์ ํ๋ ฅ์ IP๋ ์๊ธ์ ์ง๋ถํด์ผํ๋ฏ๋ก ํ๋ ฅ์ IP๋ฅผ ์์ฑํ๋ ค๊ณ ์๋ํ์ง๋ง ๋ถ๊ฐ๋ฅํฉ๋๋ค.
EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด์ ์์ธ ๋ฆฌ์ ์์ ์ฌ์ฉ๊ฐ๋ฅํ AMI ์ ํ์ ์กฐํํ ์ ์๊ธฐ ๋๋ฌธ์ ์งํํ ์ ์์ต๋๋ค.
๋์ฟ ๋ฆฌ์ ์ ๋ํ ํ์ด์ง๋ ์ ์ํ ์ ์์ง๋ง AWS ๋ฆฌ์์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋์ผํ๊ฒ AWS API๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์์ธ ๋ฆฌ์ ์ธ์๋ ๊ถํ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
์ฌ์ง์ด๋ ๊ธ๋ก๋ฒ ๋ฆฌ์ ์๋น์ค์ธ S3์์๋ ๊ถํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ S3 ์๋น์ค๋ก ์ด๋ํ ๋ ํ์ฌ ๋ฆฌ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ธ๋ฐ ์์ธ ๋ฆฌ์ ์ผ๋ก ๋ณ๊ฒฝํ๊ฑฐ๋ ์ ๊ฑฐํ์๋ฉด ๋ฉ๋๋ค.
๊ฒฝ๊ณ ์ค์ ์ผ๋ก ๋ฆฌ์ ์ ํ
์์ pika ์ฌ์ฉ์๋ AdministratorAccess๋ผ๋ ์ง๋ฌด ์ ์ฑ ๊ณผ ๋์ผํ๊ฒ ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๋ AdministratorAccessOnlySeoul์ด๋ผ๋ ์ ์ฑ ์ ๋ง๋ค์ด์ ์ฐ๊ฒฐํ์ฌ ์ ํํ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์๋ง๋ค ๋ถ์ฌ๋ ๊ถํ์ด ๋ค๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ ๋งค๋ฒ ๋ฆฌ์ ์ ์ ํํ๋ ์ ์ฑ ์ ๋ง๋ค์ด์ ์ฐ๊ฒฐํ๊ธฐ์๋ ๋ถํธํจ์ด ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ์ ์ฑ ์ ๊ถํ ๊ฒฝ๊ณ(Permissions boundary)๋ก ์ค์ ํ๋ฉด ๋ชจ๋ ์ฌ์ฉ์๋ง๋ค ๋ถ์ฌ๋ ์ ์ฑ ์ ๋ํ์ฌ ๋ฆฌ์ ์ ์ ํํ ์ ์์ต๋๋ค.
ํน์ ์๋น์ค์ ๋ํ ๊ถํ์ ๊ฐ์ง ์ฌ์ฉ์
์ ๊ฐ ์ฌ์ฉํ๋ mambo๋ผ๋ ์ฌ์ฉ์๋ VPC, EC2, S3์ ๋ํ ๋ชจ๋ ๊ถํ์ ๊ฐ์ง๋๋ก ์ ์ฑ ์ ์ฐ๊ฒฐํ์์ต๋๋ค.
์์ธ ๋ฆฌ์ ์ ๊ฒฝ๊ณ๋ก ์ ํ
์ด์ ๊ณผ ๋์ผํ๊ฒ ์์ธ ๋ฆฌ์ ๋ง์ ์ฌ์ฉํ ์ ์๋๋ก ์ ํํ๊ธฐ ์ํด ์ ์ฑ ์ ๋ง๋ค์ด์ ๊ถํ ๊ฒฝ๊ณ๋ก ์ค์ ํ๊ฒ ์ต๋๋ค.
mambo ์ฌ์ฉ์๋ RDS์ ๋ํ ๊ถํ์ด ์๊ธฐ ๋๋ฌธ์ ์์ธ ๋ฆฌ์ ์์๋ RDS๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
EC2 ์๋น์ค์ ๋ํ ๊ถํ์ ๊ฐ์ง๊ณ ์์ง๋ง ๊ฒฝ๊ณ ์ค์ ์ผ๋ก ์ธํ์ฌ ์์ธ ๋ฆฌ์ ์ด ์๋๋ฉด ๊ถํ์ด ์๊ฒ ๋ฉ๋๋ค.
๊ธ๋ก๋ฒ ์๋น์ค ๋ฆฌ์
CloudFront, Route53, IAM๊ณผ ๊ฐ์ ๊ธ๋ก๋ฒ ์๋น์ค๋ ๋ฏธ๊ตญ ๋๋ถ (us-east-1) ๋ฆฌ์ ์ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํ ๊ถํ์ ๋ณ๋๋ก ์ค์ ํ์ฌ์ผํฉ๋๋ค.
{
"Effect": "Allow",
"Action": [
"cloudfront:*",
"route53:*",
"iam:*",
"support:*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:RequestedRegion": [
"us-east-1"
]
}
}
}
๋๋ง์น๋ฉฐ
IAM ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์ ์ ์ ํํจ์ผ๋ก์จ ๋น๋ก ๊ณ์ ์ ๋ณด๊ฐ ์ ์ถ๋๋๋ผ๋ ์์ธ ๋ฆฌ์ ์์๋ง AWS ๋ฆฌ์์ค๋ฅผ ๋ง์๋๋ก ์์ฑํ ์ ์๋๋ก ๋ฐฉ์งํ ์ ์๊ฒ ๋์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ ์ฉํ๋๋ผ๋ IAM ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ์ ์ก์ธ์ค ํค๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฐฑ์ ํ๋ ๊ฒ์ ๋ฐ๋์ ํ์ํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.