[AWS IAM] AWS IAM ์๊ฒฉ์ฆ๋ช
์ด๋? (IAM User, Group, Role, Policy)
2022. 8. 21. 23:31ใAWS
0. IAM(Identity and Access Management)
https://musma.github.io/2019/11/05/about-aws-iam-policy.html
- AWS ๋ฆฌ์์ค์ ๋ํ ์ก์ธ์ค๋ฅผ ์์ ํ๊ฒ ์ ์ดํ ์ ์๋ ์น์๋น์ค.
- IAM์ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋๋ก ์ธ์ฆ(๋ก๊ทธ์ธ) ๋ฐ ๊ถํ ๋ถ์ฌ๋ ๋์์ ์ ์ดํ๋ค.
- IAM ์๊ฒฉ ์ฆ๋ช
- IAM User(์ฌ์ฉ์)
- IAM Group(๊ทธ๋ฃน)
- IAM Role(์ญํ )
1. IAM User
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_users.html
- AWS์์ ์์ฑํ๋ ์ํฐํฐ๋ก์ AWS์ ์ํธ ์์ฉํ๊ธฐ ์ํด ๊ทธ ์ํฐํฐ๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋ ๋๋ ์ ํ๋ฆฌ์ผ์ด์ .
- AWS์์ ์ฌ์ฉ์๋ ์ด๋ฆ๊ณผ ์๊ฒฉ ์ฆ๋ช ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ์ฌ์ฉ์์ ์๊ฒฉ ์ฆ๋ช
๋ฐฉ๋ฒ
- ์ฝ์ ์ํธ
- ์ก์ธ์ค ํค: ์ก์ธ์ค ํค ID์ ๋ณด์ ์ก์ธ์ค ํค์ ์กฐํฉ.
- CodeCommit์ฉ SSH ํค
- ์๋ฒ ์ธ์ฆ์: ์ผ๋ถ AWS ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ธ์ฆ์ ์ฌ์ฉํ ์ ์๋ SSL/TLS ์ธ์ฆ์.
2. IAM Group
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_groups.html
- IAM User๋ค์ ์งํฉ.
- ๊ทธ๋ฃน์ ํ์ฉํ๋ฉด ๋ค์์ ์ฌ์ฉ์๋ค์ ๋ํ ๊ถํ์ ์ง์ ํจ์ผ๋ก์จ ํด๋น ์ฌ์ฉ์๋ค์ ๋ํ ๊ถํ์ ๋ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค.
- ๊ทธ๋ฃน์ ํน์ง
- ํ ๊ทธ๋ฃน์ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ํฌํจ๋ ์ ์์ผ๋ฉฐ, ํ ์ฌ์ฉ์๊ฐ ๋ค์ค ๊ทธ๋ฃน์ ์ํ ์ ์๋ค.
- ๊ทธ๋ฃน์ ์ค์ฒฉ๋ ์ ์๋ค. ์ฆ, ๊ทธ๋ฃน์ ์ฌ์ฉ์๋ง ํฌํจํ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๊ทธ๋ฃน์ ํฌํจํ ์ ์๋ค.
- AWS ๊ณ์ ์ ๋ชจ๋ ์ฌ์ฉ์๋ฅผ ํฌํจํ๋ ๊ธฐ๋ณธ ๊ทธ๋ฃน์ ์๋ค.
- AWS ๊ณ์ ์ IAM ๋ฆฌ์์ค ์์ ํฌ๊ธฐ๋ ์ ํ๋์ด ์๋ค.
3. IAM Role
- ํน์ ๊ถํ์ ๊ฐ์ง ๊ณ์ ์ ์์ฑํ ์ ์๋ IAM ์๊ฒฉ ์ฆ๋ช .
- ์ผ๋ฐ์ ์ผ๋ก AWS ๋ฆฌ์์ค์ ์ก์ธ์คํ ์ ์๋ ์ฌ์ฉ์, ์ ํ๋ฆฌ์ผ์ด์ ๋๋ ์๋น์ค์ ์ก์ธ์ค ๊ถํ์ ์์ํ ์ ์๋ค.
- ์ญํ ์ ๋งก์ ์ ์๋ ์ฃผ์ฒด
- ๋์ผํ AWS ๊ณ์ ์ IAM ์ฌ์ฉ์.
- ์ญํ ๊ณผ ๋ค๋ฅธ AWS ๊ณ์ ์ IAM ์ฌ์ฉ์.
- Amazon EC2์ ๊ฐ์ AWS๊ฐ ์ ๊ณตํ๋ ์น ์๋น์ค.
- SAML 2.0, OpenID Connect ๋๋ ์ฌ์ฉ์ ์ง์ ๊ตฌ์ถ ์๊ฒฉ ์ฆ๋ช ๋ธ๋ก์ปค์ ํธํ๋๋ ์ธ๋ถ ์๊ฒฉ ์ฆ๋ช ๊ณต๊ธ์(IdP) ์๋น์ค์ ์ํด ์ธ์ฆ๋ ์ธ๋ถ ์ฌ์ฉ์.
- EC2 ์ธ์คํด์ค์ AWS ์๋น์ค ์ญํ
- EC2 ์ธ์คํด์ค์์ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ณ์ ์์ ์์ ์ ์ํํ๊ธฐ ์ํด ๋งก์ ์ ์๋ ํน์ํ ์ ํ์ ์๋น์ค ์ญํ .
- ์ด ์ญํ ์ ์์๋ EC2 ์ธ์คํด์ค์ ํ ๋น๋๋ค.
- EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ IAM ์ญํ ์ ํ ๋นํ ์ ์๋ค.
๐ RBAC(Role-Based Access Control)
- ๊ถํ์ ๋ ผ๋ฆฌ์ ์งํฉ์ผ๋ก์ ์ญํ ์ ๋ง๋ค๊ณ ์ญํ ์ ๊ทธ๋ฃน์ด๋ ์ฌ์ฉ์์ ์ฐ๊ฒฐํ๋ค.
- ๊ถํ ๊ฒ์ฌ๋ฅผ ํ ๋ Group์ ๋ํด์ ์กฐ๊ฑด์ ๊ฑฐ๋ ๊ฒ๋ณด๋ค๋, ์ข ๋ ๋ณด์์ ์ธ ์ธก๋ฉด์ ๊ฐ๊น์ด Role์ ๋ํด์ ๊ท์น์ ์ค์ ํ๋ ๊ฒ์ด ์ฝ๋ค.
- ⇒ AWS์ ๋ง์ ์๋น์ค์์ ๊ถํ์ ์ค์ ํ ๋ IAM Group๋ณด๋ค IAM Role์ ์ง์ ํ๋ ๋ถ๋ถ์ด ๋ง๋ค.
4. IAM Policy
- ์๊ฒฉ ์ฆ๋ช ์ด๋ ๋ฆฌ์์ค์ ์ฐ๊ฒฐ๋ ๋ ํด๋น ๊ถํ์ ์ ์ํ๋ AWS์ ๊ฐ์ฒด.
- ์ ์ฑ ์์ ๊ถํ์ ์์ฒญ์ด ํ์ฉ๋๊ฑฐ๋ ๊ฑฐ๋ถ๋๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค.
- ๋๋ถ๋ถ์ ์ ์ฑ ์ AWS์ JSON ๋ฌธ์๋ก ์ ์ฅ๋๋ค.
4-1. Policy์ ์ข ๋ฅ
- ์ฐ๊ฒฐ ๋์์ด ์ด๋์ธ๊ฐ์ ๋ฐ๋ผ.
- ์๊ฒฉ ์ฆ๋ช ๊ธฐ๋ฐ ์ ์ฑ (Id-Based Policy) : ์๊ฒฉ ์ฆ๋ช ์ฃผ์ฒด(User, Group, Role)์ ์ ์ฑ ์ฐ๊ฒฐ.
- ๋ฆฌ์์ค ๊ธฐ๋ฐ ์ ์ฑ (Resource-Based Policy) : ๋ฆฌ์์ค์ ์ ์ฑ ์ฐ๊ฒฐ.
- ์ ๋ขฐ ์ ์ฑ : Role์ ์ ๋ขฐ ๊ด๊ณ๋ฅผ ์ฐ๊ฒฐ.
- ๋๊ฐ ๋ง๋ค์๋์ ๋ฐ๋ผ.
- ์ฌ์ฉ์: ๊ณ ๊ฐ ๊ด๋ฆฌ ์ ์ฑ .
- AWS์ ๋นํธ์ธ ์ ์ฑ : AWS ๊ด๋ฆฌ ์ ์ฑ , ์ง๋ฌด ๊ธฐ๋ฐ ์ ์ฑ .
- IAM Role์ ์ธ๋ผ์ธ์ผ๋ก ์ ์ธ๋์ด ์์ผ๋ฉด ์ธ๋ผ์ธ ์ ์ฑ .
4-2. IAM Policy์ JSON ๋ฌธ๋ฒ
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucketA/*"
}
]
}
Version
- string
- IAM Policy JSON ๋ฌธ์ ์์ ๋ฒ์ .
- default๋ 2008-10-17์ด์ง๋ง, 2012-10-17์ ์ฌ์ฉํด์ผ ํ๋ฏ๋ก ํญ์ ๋ฃ์ด์ผ ํ๋ค.
Statement
- array
- ๊ถํ ๋ถ์ฌ ๊ท์น(Rule ํน์ Policy)์ ๋์ด.
Effect
- enum: Allow | Deny
- ํ์ฉํ๋ค๋ ๊ท์น์ธ์ง, ๋ถํํ๋ค๋ ๊ท์น์ธ์ง ๊ตฌ๋ถ.
Action
- string | Array<string>
- ํ๋ ํน์ ์ฌ๋ฌ ๊ฐ์ Action์ ์ง์ ํ ์ ์๋ค.
- AWS ์๋น์ค์ ์ฌ์ฉ๋๋ ์์
, ๋ฆฌ์์ค ๋ฐ ์กฐ๊ฑด ํค
- ๊ฐ ์๋น์ค๋ณ๋ก ๊ณ ์ ์ ์๋น์ค ์ ๋์ฌ(์: DynamoDB๋ dynamodb)๊ฐ ์๋ค.
- Action์ (์๋น์ค ์ ๋์ฌ):(์์
) ํ์์ผ๋ก ์์ฑํ๋ค.
- ์์ ์ ์๋น์ค๋ง๋ค ์ ์๋ ๋ชฉ๋ก์ด ์๋ค.
- ์: dynamodb:DeleteItem, s3:GetObject ๋ฑ
Resource
- Statement์ ์ฃผ์ฒด๊ฐ ๋ฆฌ์์ค๋ฅผ ํ์ ํ๋ค.
- ์๋น์ค์ ๋ฐ๋ผ ํด๋น ์๋น์ค์ ์ํ ํ๋ถ ๋ฆฌ์์ค ๋จ์๊น์ง ํ์ ๊ฐ๋ฅ.
- ์: DynamoDB์ ํ ์ด๋ธ ์์ค๊น์ง ํ์ (arn:aws:dynamodb:::table/tableA).
- ๋ฆฌ์์ค๋ฅผ ํน์ ํ ์ ์๋ ์ผ๋ถ ์๋น์ค์์๋, Resource๋ฅผ ๋น์๋๋ ๋์ *๋ฅผ ์ ๋ ฅํ๋ค.
Principal
- object (Principal)
- ๋ฆฌ์์ค ๊ธฐ๋ฐ ์ ์ฑ ์์, ๋ณด์ ์ฃผ์ฒด๋ฅผ ์ง์ ํ๋ค.
Sid
- string
- Statement ID
- ๊ฐ ์์์ Unique ID๋ฅผ ๋ถ์ด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
๐ ABAC(Attribute-Based Access Control)
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
- AWS์ฉ ABAC.
- ์์ฑ(ํ๊ทธ)์ ๊ธฐ๋ฐ์ผ๋ก ๊ถํ์ ์ ์ํ๋ ๊ถํ ๋ถ์ฌ ์ ๋ต.
- ๊ถํ์ ๋ถ์ฌํ๋ ํ์์ผ๋ก์ Policy๋ผ๋ ๊ฐ๋
์ด ์ถ๊ฐ๋๋ค.
- ABAC ์ ์ฑ : ์ฌ์ฉ์ ๋ฐ ์ญํ ํ๊ทธ๊ฐ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ๋ชจ๋ ABAC ์ญํ ์์.
- ์ ์ฑ ์ ํ๊ทธ๋ฅผ ์ด์ฉํ ์กฐ๊ฑด๋ฌธ ํ์์ ์ฌ์ฉํ์ฌ ๋์ ์ผ๋ก ๊ถํ์ ๋ถ์ฌํ ์ ์๊ฒ ํ๋ ์์์ด๋ค.
- Policy๋ฅผ ์ด๊ฑฐํ๋ฏ๋ก PBAC(Policy-Based Access Control)์ด๋ผ๊ณ ๋ ํ๋ค.
๐ ์ฐธ๊ณ ๋ฌธ์
1. ๊ธฐ์ ๋ธ๋ก๊ทธ: AWS IAM: IAM Policy ์์๋ณด๊ธฐ (์ด๋ก ํธ)