[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์˜ ์ข…๋ฅ˜

  • ์—ฐ๊ฒฐ ๋Œ€์ƒ์ด ์–ด๋””์ธ๊ฐ€์— ๋”ฐ๋ผ.
    1. ์ž๊ฒฉ ์ฆ๋ช… ๊ธฐ๋ฐ˜ ์ •์ฑ…(Id-Based Policy) : ์ž๊ฒฉ ์ฆ๋ช… ์ฃผ์ฒด(User, Group, Role)์— ์ •์ฑ… ์—ฐ๊ฒฐ.
    2. ๋ฆฌ์†Œ์Šค ๊ธฐ๋ฐ˜ ์ •์ฑ…(Resource-Based Policy) : ๋ฆฌ์†Œ์Šค์— ์ •์ฑ… ์—ฐ๊ฒฐ.
    3. ์‹ ๋ขฐ ์ •์ฑ… : 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 ์•Œ์•„๋ณด๊ธฐ (์ด๋ก ํŽธ)

2. AWS Docs: IAM ์‚ฌ์šฉ์ž

3. AWS Docs: IAM ์‚ฌ์šฉ์ž ๊ทธ๋ฃน

4. AWS Docs: IAM ํŠœํ† ๋ฆฌ์–ผ: ํƒœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ AWS ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ ์ •์˜