์ฃผ์ฒด(Principal)์™€ ๊ฐ์ฒด(Resource)

์ ‘๊ทผ ํ†ต์ œ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

  • ์ฃผ์ฒด (Principal): ์ ‘๊ทผํ•˜๋ ค๋Š” ์‚ฌ๋žŒ ๋˜๋Š” ์‹œ์Šคํ…œ (์˜ˆ: User, Role, System).
  • ๊ฐ์ฒด (Resource): ์ ‘๊ทผ ๋Œ€์ƒ์ด ๋˜๋Š” ์ž์› (์˜ˆ: AWS Resource - S3 Bucket, EC2 Instance, Secret).

์ ‘๊ทผ ํ†ต์ œ ๋ชจ๋ธ

๋ชจ๋ธ์„ค๋ช…์ ์šฉ ๋Œ€์ƒํŠน์ง•
RBAC (Role-Based Access Control)์—ญํ• (Role)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ถŒํ•œ์„ ๋ถ€์—ฌ.๋ถ€์„œ, ๊ทธ๋ฃน ๋‹จ์œ„์‚ฌ๋žŒ๋งˆ๋‹ค์˜ ๊ถŒํ•œ ๊ด€๋ฆฌ ๋ณต์žก์„ฑ์„ ํ•ด์†Œ.
ABAC (Attribute-Based Access Control)์ฃผ์ฒด, ๊ฐ์ฒด, ํ™˜๊ฒฝ ๋“ฑ์˜ ์†์„ฑ(Attribute)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ ‘๊ทผ ํ†ต์ œ.ํŠน์ • ๋“ฑ๊ธ‰, ํƒœ๊ทธ ๊ธฐ๋ฐ˜ (์˜ˆ: ์ •๋ณด๋ถ€์„œ์— ์†ํ•œ ์‚ฌ๋žŒ๋“ค)๋” ์„ธ๋ฐ€ํ•˜๊ณ  ์œ ์—ฐํ•œ ์ •์ฑ… ์„ค์ • ๊ฐ€๋Šฅ.

AWS IAM (Identity and Access Management)

AWS์—์„œ ์ตœ์†Œ ๊ถŒํ•œ ์›์น™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ ‘๊ทผ์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ์„œ๋น„์Šค

์ตœ์†Œ ๊ถŒํ•œ ์›์น™ ์ •๋ณด๋ณด์•ˆ ๊ฐœ๋…์œผ๋กœ, ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋Š”๋ฐ ๊ผญ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ, ๋ฆฌ์†Œ์Šค, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์›์น™์œผ๋กœ malware์™€ ๊ฐ™์€ ๊ณต๊ฒฉ์— ๋Œ€ํ•ด ๋Œ€๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ด ๋œ๋‹ค.

์ฃผ์ฒด (Principal)์™€ ๊ฐ์ฒด (Resource)

๊ตฌ๋ถ„AWS ๊ตฌ์„ฑ ์š”์†Œ์„ค๋ช…
์ฃผ์ฒดUser, Group, RoleAWS ํ™˜๊ฒฝ์—์„œ ํ™œ๋™ํ•˜๋Š” ์‹ค์งˆ์ ์ธ ์—”ํ‹ฐํ‹ฐ.
๊ฐ์ฒดResource์ ‘๊ทผ ๋Œ€์ƒ์ด ๋˜๋Š” AWS ์„œ๋น„์Šค์˜ ์ž์›.
์ ‘๊ทผ ๋ฐฉ์‹Policy์ฃผ์ฒด๊ฐ€ ๊ฐ์ฒด์— ์ ‘๊ทผํ•  ๋•Œ ๊ฐ€์ง€๋Š” ๊ถŒํ•œ ๋ช…์„ธ.

IAM ๊ตฌ์„ฑ ์š”์†Œ

  • User: ๊ฐœ๋ณ„์ ์ธ ์‚ฌ๋žŒ์„ ์œ„ํ•œ ์˜๊ตฌ์ ์ธ ์ž๊ฒฉ ์ฆ๋ช….
  • Group: User๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ, Group์— Policy๋ฅผ ์ ์šฉํ•˜์—ฌ ์ผ๊ด„ ๊ด€๋ฆฌ.
  • Role: ์‚ฌ๋žŒ/์‹œ์Šคํ…œ์— ๋ถ€์—ฌ๋˜์–ด ์ž„์‹œ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ œ๊ณต.
    • ์‹œ์Šคํ…œ(EC2, Lambda ๋“ฑ): Instance Profile์„ ํ†ตํ•ด Role์„ ๋ถ€์—ฌํ•˜์—ฌ ๋‹ค๋ฅธ Resource์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.
    • Access Key (API User): ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ์—์„œ AWS API ์ ‘๊ทผ ์‹œ ์‚ฌ์šฉ. ๋ณด์•ˆ ์‚ฌ๊ณ  ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด Role ์‚ฌ์šฉ ๊ถŒ์žฅ.
    • Role์˜ ์ž„์‹œ ์ž๊ฒฉ ์ฆ๋ช…: Access Key, Secret Key, Session Token์˜ ์„ธ ๊ฐ€์ง€ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ตœ๋Œ€ 12์‹œ๊ฐ„๋งˆ๋‹ค ์ž๋™ ๊ฐฑ์‹ .

Root Account

  • ์ตœ์ƒ์œ„ ๊ถŒํ•œ์„ ๊ฐ€์ง€๋ฏ€๋กœ ๊ถŒํ•œ ํ†ต์ œ๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๋ฉฐ, ์ผ์ƒ์ ์ธ ์ž‘์—…์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ.
  • โญย ๋ชจ๋“  ์ž‘์—…์€ IAM User๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•จ. ์ด์ „์ฒ˜๋Ÿผ ๋ฃจํŠธ ๊ณ„์ •์œผ๋กœ ํ•˜๋Š” ์ผ์€ ๋”๋Š” ํ•˜์ง€๋ง์ž โญ

Multi-Account ์ „๋žต: Organizations

๋Œ€๊ธฐ์—…์ฒ˜๋Ÿผ ๋‹ค์ˆ˜์˜ Account๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” AWS ์„œ๋น„์Šค

  • Organization: ๋‹ค์ˆ˜์˜ AWS Account๋ฅผ ์ค‘์•™์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ƒ์œ„ ๊ฐœ๋….
  • Organization Unit (OU): Account๋“ค์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ทธ๋ฃนํ™”(ํด๋”์™€ ์œ ์‚ฌ)ํ•˜์—ฌ ๊ด€๋ฆฌ. ์ตœ๋Œ€ 5๋‹จ๊ณ„๊นŒ์ง€ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ.
  • SCP (Service Control Policy): Organization ๋˜๋Š” OU์— ์ ์šฉ๋˜์–ด ์ตœ๋Œ€ ํ—ˆ์šฉ ๊ถŒํ•œ์„ ์ •์˜. SCP๋Š” Account์—๋„ ์ ์šฉ๋˜๋ฉฐ, ํ•˜์œ„ Account์— ์ƒ์†๋จ.

ํด๋ผ์šฐ๋“œ ABAC (Tag ๊ธฐ๋ฐ˜ ์ •์ฑ…)

  • ๊ฐ™์€ ๊ทธ๋ฃน์˜ Resource์— Tag๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ์ด Tag๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •์ฑ… ํ†ต์ œ.
  • IAC (Infrastructure as Code) ๋„๊ตฌ (CDK, Terraform, Pulumi ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํƒœ๊น… ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ๊ด€๋ฆฌ ๋ณต์žก์„ฑ์„ ์ค„์ž„. IAC ๋„๊ตฌ ์—†์ด๋Š” ํ˜„์‹ค์ ์œผ๋กœ ํƒœ๊ทธ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต๋‹ค.

๋‹ค๋ฅธ Account ์ ‘๊ทผ (Cross-Account Access)

  • STS (Security Token Service)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Role์„ Assumeํ•˜๋Š” ๋ฐฉ์‹.
  • ex ) Acc A (์ฃผ์ฒด Account)์˜ User a๊ฐ€ Acc B (Resource Account)์˜ Role_b๋ฅผ Assumeํ•˜์—ฌ B์˜ Resource์— ์ ‘๊ทผ.

Policy ์œ ํ˜• ๋ฐ ํ‰๊ฐ€ ๋กœ์ง

Policy ์œ ํ˜•

์œ ํ˜•์„ค๋ช…๊ด€๋ฆฌ ์šฉ์ด์„ฑ
Managed PolicyAWS ๋˜๋Š” ๊ณ ๊ฐ์ด ๊ด€๋ฆฌํ•˜๋Š” ์ •์ฑ…. ๋ณ€๊ฒฝ ์ด๋ ฅ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ.๋†’์Œ (์žฌ์‚ฌ์šฉ ๋ฐ ์ด๋ ฅ ๊ด€๋ฆฌ)
Inline PolicyํŠน์ • IAM ์—”ํ‹ฐํ‹ฐ(User, Group, Role)์— ์ง์ ‘ ๋‚ด์žฅ๋˜๋Š” ์ผํšŒ์„ฑ ์ •์ฑ…. ๋ณ€๊ฒฝ ์ด๋ ฅ ๊ด€๋ฆฌ ๋ถˆ๊ฐ€.๋‚ฎ์Œ (์ผํšŒ์„ฑ, ๊ด€๋ฆฌ ๋ณต์žก)
Resource-Based PolicyResource ์ž์ฒด์— ์—ฐ๊ฒฐ๋˜์–ด ํ•ด๋‹น Resource์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ด (์˜ˆ: SQS, SNS, S3, KMS).ํŠน์ • Resource์— ํ•œ์ •๋จ

ํ‰๊ฐ€์˜ ์šฐ์„ ์ˆœ์œ„

  1. explicit deny โ†’ ๋ช…์‹œ์ ์œผ๋กœ ๊ฑฐ๋ถ€ํ•จ
  2. explicit Allow โ†’ ํŠน์ • ์ •์ฑ…์„ ๋งŒ๋“ค์–ด์„œ ๋ถ™์ด๋Š” ๋ฒ•
  3. implicit deny โ†’ ๋‚˜์—๊ฒŒ ์•„๋ฌด ์ •์ฑ…์ด ์—†์–ด์„œ ํ•  ์ˆ˜ ์—†์Œ

AWS ์ •์ฑ… ํ‰๊ฐ€ ์ˆœ์„œ

  1. Explicit Deny (๋ช…์‹œ์  ๊ฑฐ๋ถ€)
    • ์–ด๋–ค Deny ์ •์ฑ…์ด๋ผ๋„ ๋ฐœ๊ฒฌ๋˜๋ฉด ์ฆ‰์‹œ ์ ‘๊ทผ ๊ฑฐ๋ถ€ (Deny Eval).
  2. Organization RCP(Resource Control Policy)
    • ์ „์ฒด ์กฐ์ง ๋ฆฌ์†Œ์Šค์˜ ์ตœ๋Œ€ ํ—ˆ์šฉ ๋ฒ”์œ„๋ฅผ ๊ฒฐ์ •
  3. Organization SCP (Service Control Policy)
    • ์ „์ฒด ์กฐ์ง์˜ ์ตœ๋Œ€ ํ—ˆ์šฉ ๋ฒ”์œ„๋ฅผ ๊ฒฐ์ • (๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋‘ Allow ์ƒํƒœ๋กœ ์‹œ์ž‘).
  4. Resource-Based Policy(IAM Policy)
    • ๋ฆฌ์†Œ์Šค ๊ธฐ๋ฐ˜ ์ •์ฑ…(S3 ๋“ฑ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค์—์„œ ์ง์ ‘์ ์œผ๋กœ ๋ถ™์ด๋Š” ์ •์ฑ…)
  5. Identity-Based Policy (IAM Policy)
    • User, Group, Role์— ์—ฐ๊ฒฐ๋œ ์ •์ฑ….
  6. IAM Permissions Boundary
    • IAM ์—”ํ‹ฐํ‹ฐ์— ํ• ๋‹น๋˜์–ด ์ตœ๋Œ€ ๊ถŒํ•œ์„ ์„ค์ •.
  7. Session Policy
    • Role Assume ์‹œ ์ ์šฉ๋˜๋Š” ์ž„์‹œ ์ •์ฑ….

ํ•ต์‹ฌ ์›์น™: ๋ช…์‹œ์  ๊ฑฐ๋ถ€(Deny)๊ฐ€ ๋ช…์‹œ์  ํ—ˆ์šฉ(Allow)๋ณด๋‹ค ํ•ญ์ƒ ์šฐ์„ ํ•˜๋ฉฐ, ์ตœ์ข… ํ—ˆ์šฉ์„ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค Deny๋„ ์—†์–ด์•ผ ํ•˜๊ณ  ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ Allow๊ฐ€ ์žˆ์–ด์•ผ ํ•จ

IAM Identity Center

๋‹ค์ค‘ Account ํ™˜๊ฒฝ์—์„œ ์ค‘์•™ ์ง‘์ค‘์‹์œผ๋กœ ID์™€ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ด€๋ฆฌ

  • ์œ ์ €/๊ทธ๋ฃน: Identity Center ๋‚ด์—์„œ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋˜๋Š” ID.
  • Permission Set: IAM Policy๋“ค์˜ ์ง‘ํ•ฉ (Policy).
  • ์ž‘๋™ ๋ฐฉ์‹: User ๋˜๋Š” Group์— Permission Set์„ ํ• ๋‹นํ•˜๋ฉด, Account ์ ‘์† ์‹œ ํ•ด๋‹น Permission Set์— ์„ค์ •๋œ ๋‹ค๋ฅธ Account์˜ Role๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ ‘๊ทผํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

KMS (Key Management Service)

์•”ํ˜ธํ™” ํ‚ค ๊ด€๋ฆฌ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. KMS Key Policy๋Š” Inline Policy ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • AMK (AWS Managed Key): AWS๊ฐ€ ์ •์ฑ… ๊ด€๋ฆฌ.
  • CMK (Customer Managed Key): ๊ณ ๊ฐ์ด ์ •์ฑ… ๊ด€๋ฆฌ.

๐Ÿ’ก Multi-Account ์„ค๊ณ„ ๊ณ ๋ ค์‚ฌํ•ญ

  • Resource Based Policy: Multi-Account ํ™˜๊ฒฝ์—์„œ๋Š” ๋‹ค๋ฅธ Account์˜ ์ฃผ์ฒด(Principal)๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก Resource Based Policy์— ๋ช…์‹œ์ ์œผ๋กœ Account A:userA์™€ ๊ฐ™์€ Principal์„ ์„ค์ •ํ•ด์•ผ ํ•จ
  • ์ค‘์•™ํ™”: KMS Key๋‚˜ S3 Bucket๊ณผ ๊ฐ™์€ ์ค‘์š” Resource๋ฅผ ํ•œ ๊ณณ์— ์ค‘์•™ํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•จ

AWS์ƒ์—์„œ์˜ ์ธ์ฆ

  • AWS Identity and Access Management(IAM) ์‚ฌ์šฉ์ž๋Š” AWS์—์„œ ์ƒ์„ฑํ•˜๋Š” ์—”ํ„ฐํ‹ฐ๋กœ์„œ AWS์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ ์—”ํ„ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
  • AWS์—์„œ ์‚ฌ์šฉ์ž๋Š” ์ด๋ฆ„๊ณผ ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ ๊ตฌ์„ฑ

์ธ์ฆ๊ณผ ์ธ๊ฐ€ ์ธ์ฆ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์‹ ์ด ์ฃผ์žฅํ•˜๋Š” ์‚ฌ์šฉ์ž์™€ ๊ฐ™์€ ์‚ฌ์šฉ์ž์ธ์ง€๋ฅผ ํ™•์ธ ์ธ๊ฐ€ : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•˜๊ณ ์ž ํ•˜๋Š” ์ง์—…์ด ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ—ˆ๊ฐ€๋œ ์ž‘์—…์ธ์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ ์ƒํƒœ ํ™•์ธ

๋ฃจํŠธ ๊ณ„์ •์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ฃจํŠธ ์œ ์ €๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์กฐ์œจํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ IAM Role์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๋งค๋ฒˆ ํ•„์š”ํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ๊ฐ€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•ด์ง

๊ณต๋™ ์ฑ…์ž„ ๋ชจ๋ธ(Shared Responsibility Model)

AWS๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ์˜ ๋ณด์•ˆ์€ AWS๊ฐ€ ์ฑ…์ž„์„ ์ง€์ง€๋งŒ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ํด๋ผ์šฐ๋“œ ์œ„ ๋ณด์•ˆ์€ ๊ณ ๊ฐ์ด ์ฑ…์ž„์ ธ์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ž„

AWS์—์„œ์˜ ์ธ๊ฐ€

  • ๋ชจ๋“  AWS ์„œ๋น„์Šค๋Š” ์ ‘๊ทผ์ œ์–ด ์ •์ฑ…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธ๊ฐ€๋จ
  • ๋งค API ํ˜ธ์ถœ ์‹œ, ์ ์šฉ๋œ ์ •์ฑ…์„ ํ†ตํ•ด ์ธ๊ฐ€ ์ˆ˜ํ–‰
  • ์ •์ฑ…์€ IAM ์—ญํ• /์‚ฌ์šฉ์ž/๊ทธ๋ฃน, AWS ๋ฆฌ์†Œ์Šค, ์ž„์‹œ ์ž๊ฒฉ์ฆ๋ช… ์„ธ์…˜, OU ๋“ฑ์— ์ ์šฉ ๊ฐ€๋Šฅ
  • AWS Root ์–ด์นด์šดํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ชจ๋“  ๊ถŒํ•œ์„ ๊ฐ€์ง
  • AWS ์ •์ฑ…์€ ๊ธฐ๋ณธ ๋””ํดํŠธ๊ฐ€ Deny์ด๊ณ , ๋ช…์‹œ์  Allow < ๋ช…์‹œ์  Deny์˜ ์šฐ์„ ์ˆœ์œ„

์š”์ฒญ์˜ ์„ฑ๊ณต ์กฐ๊ฑด

์ œ์ถœ๋œ ์š”์ฒญ์ด ์„ฑ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ

  • IAM ๋ณด์•ˆ ์ฃผ์ฒด์˜ ์ ๋ฒ•ํ•œ ์„œ๋ช…๊ฐ’์ด ํฌํ•จ(์ธ์ฆ)
  • AND ์กฐ๊ฑด์œผ๋กœ Permission policy๋ฅผ ๋ณด๊ณ  ๊ถŒํ•œ ํ™•์ธ

AWS ์ •์ฑ…์˜ JSON ๊ตฌ์กฐ

{
	...
	"Statement" : [
	{
		//ํ—ˆ์šฉ or ์ฐจ๋‹จ
		"Effect" : "Allow or Deny",
		// ์–ด๋–ค ํ–‰์œ„๋ฅผ?
		"Action" : [...],
		// ์–ด๋–ค ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด์„œ?
		"Resource" : [...],
		// (optional) ์–ด๋–ค ์กฐ๊ฑด์—์„œ?
		"Condition" : [...]
	}
	]
}
 

IAM ์ •์ฑ…์˜ ์ข…๋ฅ˜

Identity-based Policy์™€ Resource-based policy

Identity-based -> ์š”์ฒญํ•˜๋Š” ์ฃผ์ฒด์—๊ฒŒ ์—ฐ๊ฒฐ๋จ
Resource-based -> ์š”์ฒญ์„ ๋ฐ›๋Š” ๋ฆฌ์†Œ์Šค์— ์—ฐ๊ฒฐ๋จ

์ถ”๊ฐ€์ ์œผ๋กœ Resource-based์—๋Š” Principal(ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ์š”์ฒญ์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์ฃผ์ฒด) ๊ตฌ๋ฌธ์ด ์ถ”๊ฐ€๋จ. ๋‘ ์ •์ฑ…์˜ ์ปค๋ฒ„๋ฆฌ์ง€๋Š” In-Account(๋™์ผ Account) & Cross-Account์ธ์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ„

๋™์ผ Account โ†’ ํ•ฉ์ง‘ํ•ฉ์˜ ํ˜•ํƒœ๋กœ ๊ฒ€์‚ฌ Cross Account โ†’ ๊ต์ง‘ํ•ฉ์˜ ํ˜•ํƒœ๋กœ ๊ฒ€์‚ฌ

IAM ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ

  • IAM Identities
    • IAM Users
    • IAM User groups
    • IAM Roles
  • IAM Policy

IAM Identities

  1. IAM ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๊ณ„์ • ๋ณ„์นญ ๋งŒ๋“ค๊ธฐ
  2. Policies์—์„œ ์ •์ฑ… ๋งŒ๋“ค๊ธฐ
  3. ์ •์ฑ…์„ JSON ์—๋””ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ถ”๊ฐ€
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                // Env ํƒœ๊ทธ์˜ dev๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ec2 ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด์„œ ์ถ”๊ฐ€
                    "ec2:ResourceTag/Env": "dev"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ec2:DeleteTags",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
  1. ์—‘์„ธ์Šค ๊ด€๋ฆฌ - ์‚ฌ์šฉ์ž ๊ทธ๋ฃน์—์„œ ๊ทธ๋ฃน ์ƒ์„ฑ

    • ๊ทธ๋ฃน ์ƒ์„ฑ ๊ณผ์ •์—์„œ ์ง์ ‘ ๋งŒ๋“  ์ •์ฑ…์„ ์—ฐ๊ฒฐ์‹œํ‚ด
  2. ์‚ฌ์šฉ์ž์— ๊ฐ€์„œ ์‚ฌ์šฉ์ž ์ƒ์„ฑ

    • AWS Management Console์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ ์ œ๊ณต ์ฒดํฌ
  3. ์‚ฌ์šฉ์ž ์ƒ์„ฑ ๊ณผ์ •์—์„œ ๊ทธ๋ฃน์— ์‚ฌ์šฉ์ž ์ถ”๊ฐ€ํ•ด์„œ ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“  ์‚ฌ์šฉ์ž ๊ทธ๋ฃน์„ ์—ฐ๊ฒฐ

  4. ์ƒ์„ฑ๋œ IAM ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ์—์„œ username & password๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•˜๋ฉด EC2์—์„œ์˜ ํŠน์ • ์œ ์ €์—๊ฒŒ ํŠน์ • ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์ค„ ์ˆ˜ ์žˆ์Œ

    IAM์—์„œ ๊ถŒํ•œ์ฃผ์ง€ ์•Š์€ ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ๋•Œ

IAM Policy Simulator

์‹ค์ œ๋กœ IAM ํ…Œ์ŠคํŠธํ•˜๋‹ค๊ฐ€ ์ž˜๋ชปํ•ด์„œ ์ธ์Šคํ„ด์Šค ๋‚ ์•„๊ฐ€๊ฑฐ๋‚˜ ํ•˜๋ฉด ์‚ฌ๊ณ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ ์ž ๊ถŒํ•œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” Simulator๋ฅผ ์ œ๊ณต

policysim.aws.amazon.com

ํŠน์ • ๊ทธ๋ฃน์„ ์„ ํƒํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด์„œ Action์„ ์ •์˜ํ•œ ๋’ค Run simulation์„ ํ•˜๋ฉด ์ด์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Œ

AWS ์ •์ฑ… ๋ถ„๋ฅ˜

AWS์˜ ์ •์ฑ… โ†’ ๊ถŒํ•œ์„ ์ œํ•œํ•˜๋Š” Guardrail๊ณผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” Grant๋กœ ๋‚˜๋‰จ

SCP ์ •์ฑ… (Organization SCPs)๊ถŒํ•œ ๊ฒฝ๊ณ„ ์ •์ฑ… (Permissions boundaries)์„ธ์…˜ ์ •์ฑ… (Session policies)
๋ชฉ์ AWS ์กฐ์ง ๋‹จ์œ„์—์„œ ์ „์ฒด์ ์ธ ๋ณด์•ˆ ์ •์ฑ…์„ ์„ค์ •ํ•˜์—ฌย ์กฐ์ง ๋‚ด ๋ชจ๋“  ๊ณ„์ •์— ์ ์šฉ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์— ๋ถ€์—ฌ๋œย ๊ถŒํ•œ์˜ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜๊ณ  AWS ๋ฆฌ์†Œ์Šค์˜ ์ ‘๊ทผ์„ ์ œํ•œAWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œย ์ผ์‹œ์ ์ธ ๊ถŒํ•œ์„ ์ œํ•œํ•˜๊ณ , ์ž„์‹œ๋กœ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ถŒํ•œ์„ ์กฐ์ ˆ
๋ฒ”์œ„AWS ์กฐ์ง ๋‹จ์œ„์—์„œ ์ „์ฒด์ ์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.๊ฐœ๋ณ„ IAM ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์— ๋Œ€ํ•œ ์„ค์ •์œผ๋กœ, ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ๋งˆ๋‹ค ๋‹ค๋ฅด๊ฒŒ ์„ค์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.IAM ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์˜ ์„ธ์…˜ ๋™์•ˆ๋งŒ ์ ์šฉ๋˜๋ฉฐ, ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜๋ฉด ์ฆ‰์‹œ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
๊ถŒํ•œ ๋ณ€๊ฒฝ ๋ฐ ๊ด€๋ฆฌAWS ์กฐ์ง ๊ด€๋ฆฌ์ž๊ฐ€ ์กฐ์ง SCP ์ •์ฑ…์„ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐ์ง ๋‹จ์œ„๋กœ ์„ค์ •IAM ์ •์ฑ…์„ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ด€๋ฆฌ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์˜ ์„ธ์…˜ ์ •์ฑ…์€ ๊ฐ ์„ธ์…˜์— ๋Œ€ํ•ด ๋…๋ฆฝ์ ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๋ณ€๊ฒฝ
์˜ˆ์‹œ- ๋ชจ๋“  ์กฐ์ง ๊ณ„์ •์—์„œ ํŠน์ • ์„œ๋น„์Šค์˜ ์‚ฌ์šฉ์„ ๊ธˆ์ง€ํ•˜๋Š” ์ •์ฑ… ์„ค์ • ๊ฐ€๋Šฅ- ํŠน์ • IAM ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • S3 ๋ฒ„ํ‚ท์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ ์ œํ•œ ๊ฐ€๋Šฅ- ์ž„์‹œ๋กœ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ๋งŒ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๋Š” ์ •์ฑ… ์„ค์ • ๊ฐ€๋Šฅ
์ ์šฉ ์‹œ์  ๋ฐ ์ง€์†์„ฑ์ ์šฉ ์‹œ์ :ย ์ •์ฑ… ์„ค์ • ์‹œ์ ๋ถ€ํ„ฐ ์กฐ์ง ๋‚ด ๋ชจ๋“  ๊ณ„์ •์— ์ฆ‰์‹œ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.์ง€์†์„ฑ: ์„ค์ •์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ํ•ด์ œ๋˜์ง€ ์•Š๋Š” ํ•œ ์ง€์†์ ์œผ๋กœ ์ ์šฉ์ ์šฉ ์‹œ์ :ย IAM ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ•  ์ƒ์„ฑ ๋˜๋Š” ์ˆ˜์ • ์‹œ์ ๋ถ€ํ„ฐย ์ฆ‰์‹œ ์ ์šฉ.์ ์šฉ ์‹œ์ : ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์ดย ์„ธ์…˜์„ ์‹œ์ž‘ํ•  ๋•Œย ์ฆ‰์‹œ ์ ์šฉ ์ง€์†์„ฑ: ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ํ•ด์ œ
์šฉ๋„ ๋ฐ ์ฃผ์š” ์—ญํ• - ๋ณด์•ˆ ์ •์ฑ… ๊ฐ•ํ™”
- ์กฐ์ง ์ „์ฒด์˜ ๊ถŒํ•œ์„ ์ผ๊ด„์ ์œผ๋กœ ๊ด€๋ฆฌ
- ์กฐ์ง์˜ ์ตœ์ƒ์œ„ ๋ณด์•ˆ ์ •์ฑ…
- IAM ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ์ œํ•œํ•˜์—ฌ ์›์น˜ ์•Š๋Š” ์•ก์„ธ์Šค๋ฅผ ๋ฐฉ์ง€
- IAM ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์˜ ๋ฒ”์œ„๋ฅผ ์ œํ•œํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ๋ณดํ˜ธ
- ์ผ์‹œ์ ์œผ๋กœ ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌ
- ์„ธ์…˜ ๋™์•ˆ๋งŒ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜์—ฌ ์›ํ™œํ•œ ์ž‘์—… ์ˆ˜ํ–‰
์ฃผ์˜ ์‚ฌํ•ญ- ์‹ ์ค‘ํ•˜๊ฒŒ ์„ค์ •ํ•ด์•ผ ํ•˜๋ฉฐ, ์กฐ์ง ๋‹จ์œ„๋กœ ์ ์šฉ๋˜๋ฏ€๋กœ ๋ชจ๋“  ๊ณ„์ •์— ์˜ํ–ฅ์„ ๋ฏธ์นจ- ์‚ฌ์šฉ์ž ๋˜๋Š” ์—ญํ• ์˜ ๊ถŒํ•œ์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์„ค์ •ํ•ด์•ผ ํ•จ
- ๊ถŒํ•œ์„ ์ œํ•œํ•˜๋ฉด ์ž‘์—… ์ˆ˜ํ–‰์— ์ œ์•ฝ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ
- ์„ธ์…˜ ์ •์ฑ…์ด ๋งŒ๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ๊ถŒํ•œ์ด ํ•ด์ œ๋˜๋ฏ€๋กœ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•จ
- ์„ธ์…˜ ์ •์ฑ…์„ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•ด์•ผ ํ•จ

Guardrail

์กฐ์ง SCP ์ •์ฑ… (Organization SCPs)

  • ์กฐ์ง์˜ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ์ง ์ •์ฑ… ์œ ํ˜•
  • ์กฐ์ง ๋‚ด ๋ชจ๋“  IAM ์‚ฌ์šฉ์ž ๋ฐ IAM ์—ญํ• ์— ๋Œ€ํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ๊ถŒํ•œ์„ ์ค‘์•™์—์„œ ์ œ์–ด

๊ถŒํ•œ ๊ฒฝ๊ณ„ ์ •์ฑ… (Permissions boundaries)

  • ์ž๊ฒฉ ์ฆ๋ช… ๊ธฐ๋ฐ˜ ์ •์ฑ…(AWS ๊ด€๋ฆฌํ˜•, ๊ณ ๊ฐ ๊ด€๋ฆฌํ˜•, ์ธ๋ผ์ธ)์„ ํ†ตํ•ด IAM ์—”ํ‹ฐํ‹ฐ์— ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ถŒํ•œ์„ ์„ค์ •
  • ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ๊ถŒํ•œ ๊ฒฝ๊ณ„๋ฅผ ์„ค์ •ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ์—”ํ‹ฐํ‹ฐ๋Š” ์ž๊ฒฉ ์ฆ๋ช… ๊ธฐ๋ฐ˜ ์ •์ฑ… ๋ฐ ๊ด€๋ จ ๊ถŒํ•œ ๊ฒฝ๊ณ„ ๋ชจ๋‘์—์„œ ํ—ˆ์šฉ๋˜๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰
  • ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉ๋œ ๋„“์€ ๋ฒ”์œ„์˜ ๊ถŒํ•œ์„ ํŠน์ • ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ทธ๋ฃน์„ ๋Œ€์ƒ์œผ๋กœย ํ—ˆ์šฉ๋ฒ”์œ„๋ฅผ ์ œ์•ฝํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํšจ๊ณผ์ 
  • ex) ๊ธฐ์กด์— AWS ๊ด€๋ฆฌํ˜• ์ •์ฑ…์œผ๋กœ ๊ถŒํ•œ์„ ๋งŽ์ด ๋ฐ›์•˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ ๊ถŒํ•œ ์ •์ฑ…์„ ํ†ตํ•ด ํ—ˆ์šฉ ๋ฒ”์œ„๋ฅผ ์ œํ•œ์‹œ์ผœ๋ฒ„๋ฆฌ๊ธฐ
  • ์ž๊ฒฉ์ฆ๋ช… ๊ธฐ๋ฐ˜ ์ •์ฑ…๊ณผ ๊ถŒํ•œ ๊ฒฝ๊ณ„์˜ ๊ต์ง‘ํ•ฉ ๋ถ€๋ถ„์˜ ์ •์ฑ…๋งŒ ํ—ˆ์šฉ

์„ธ์…˜ ์ •์ฑ… (Session policies)

Grant

์ž๊ฒฉ์ฆ๋ช… ๊ธฐ๋ฐ˜ ์ •์ฑ… (Identity-based policies)

AWS ๊ด€๋ฆฌํ˜• ์ •์ฑ… (AWS Managed policies): AWS์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธ€๋กœ๋ฒŒ ์ ์šฉ ๊ฐ€๋Šฅ ์ •์ฑ…

  • ๋…๋ฆฝ์ ์ธ ์ •์ฑ…์ด๋‹ค โ†’ ์Šค์Šค๋กœ ์ •์ฑ… ์ด๋ฆ„์ด ํฌํ•จ๋œ ARN(Amazon Resource Name)์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค
  • ex) arn:aws:iam::aws:policy/IAMReadOnlyAccess ์ฒ˜๋Ÿผ ์Šค์Šค๋กœ ์ •์ฑ… ์ด๋ฆ„์ด ํฌํ•จ๋˜์–ด ์žˆ์Œ
  • ์—ฌ๋Ÿฌ ์ •์ฑ…์ด ์žˆ์œผ๋ฉด ํ•ฉ์ง‘ํ•ฉ ํ˜•ํƒœ๋กœ ์ •์ฑ… ํ‰๊ฐ€๊ฐ€ ๋จ

๊ธฐ์กด์— ์žˆ๋˜ AWS ๊ด€๋ฆฌํ˜• ์ •์ฑ…์„ ๊ทธ๋Œ€๋กœ ๋ถ€์—ฌํ•œ ๊ฒฝ์šฐ์ด๋‹ค. ๋‘ ๊ฐœ์˜ ๊ณ„์ •์—์„œ ๋ชจ๋‘ ๊ฐ™์€ ์ •์ฑ…์„ AWS ๊ด€๋ฆฌํ˜• ์ •์ฑ…์œผ๋กœ ๋ณด์œ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋А ๊ณ„์ •์—์„œ๋„ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ธฐ์กด์— ์žˆ๋˜ AWS ๊ด€๋ฆฌํ˜• ์ •์ฑ…์„ ๊ทธ๋Œ€๋กœ ๋ถ€์—ฌํ•œ ๊ฒฝ์šฐ์ด๋‹ค. ๋‘ ๊ฐœ์˜ ๊ณ„์ •์—์„œ ๋ชจ๋‘ ๊ฐ™์€ ์ •์ฑ…์„ AWS ๊ด€๋ฆฌํ˜• ์ •์ฑ…์œผ๋กœ ๋ณด์œ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋А ๊ณ„์ •์—์„œ๋„ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ณ ๊ฐ ๊ด€๋ฆฌํ˜• ์ •์ฑ… (Customer Managed policies): ๊ณ ๊ฐ์ด ์ง์ ‘ ์ƒ์„ฑํ•˜์—ฌ ๊ณ ๊ฐ ๊ณ„์ •์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ •์ฑ…

  • ์‚ฌ์šฉ์ž ์ž์‹ ์˜ AWS ๊ณ„์ •์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ฑ… โ†’ AWS ๊ณ„์ •์— ์†ํ•œ ๋‹ค์ˆ˜์˜ ๋ณด์•ˆ ์ฃผ์ฒด ์—”ํ‹ฐํ‹ฐ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ
  • Best Practice โ†’ AWS์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์กด์˜ ์ •์ฑ…์„ ๋ณต์‚ฌํ•˜์—ฌ ์‹œ์ž‘

account-admins-mfa,limited-admins-mfa, EC2-access, DynamoDB-books-app ์ •์ฑ… ๋ชจ๋‘ ๊ณ ๊ฐ์ด ์ง์ ‘ ์ปค์Šคํ…€ํ•œ ์ •์ฑ…์ด๋‹ค

AWS ๊ด€๋ฆฌํ˜•์˜ ๊ฒฝ์šฐ ์•ž์— ์ถ”๊ฐ€์ ์œผ๋กœ ์•„์ด์ฝ˜์ด ๋ถ™์–ด ์žˆ๋‹ค

์ธ๋ผ์ธ ์ •์ฑ… (In-line policies): ๋‹จ์ผ ์‚ฌ์šฉ์ž ๊ทธ๋ฃน ์—ญํ• ์— ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๋Š” ์ •์ฑ… (์žฌํ™œ์šฉ ๋ถˆ๊ฐ€)

  • IAM ์ž๊ฒฉ์ฆ๋ช…(์‚ฌ์šฉ์ž, ๊ทธ๋ฃน ๋˜๋Š” ์—ญํ• )์— ํฌํ•จ๋˜๋Š” ์ •์ฑ…
  • ์ž๊ฒฉ ์ฆ๋ช…์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ดํ›„์— ์ƒ์„ฑํ•  ๋•Œ ์ •์ฑ…์„ ์ƒ์„ฑํ•˜์—ฌ ์ž๊ฒฉ ์ฆ๋ช…์— ์‚ฝ์ž…

ํŠน์ • ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ ํ•„์š”ํ•œ ์ •์ฑ…๋“ค์„ ๋‚˜์—ดํ•œ ๋’ค ์‚ฌ์šฉ์ž์— ์—ฐ๊ฒฐ

์‹ค์Šต

  • AWS ๊ด€๋ฆฌํ˜• ์ •์ฑ…
    • ๊ทธ๋ฃน
      • Super โ†’ ๊ทธ๋ฃน์— AdministratorAccess
      • Dev - > ๊ทธ๋ฃน์— EC2FullAccess
    • ์‚ฌ์šฉ์ž
      • Super-Intern โ†’ AdministratorAccess๋ฅผ ๋ฐ›์•˜์ง€๋งŒ ๊ถŒํ•œ ๊ฒฝ๊ณ„๋ฅผ ํ†ตํ•ด AmazonEC2FullAccess๊นŒ์ง€๋งŒ ๊ถŒํ•œ์ด ํ—ˆ์šฉ๋จ
      • Dev-Intern โ†’ ์ธ๋ผ์ธ ์ •์ฑ…์œผ๋กœ S3 ๋ชฉ๋ก, ์ฝ๊ธฐ์— ๋Œ€ํ•œ ์ •์ฑ… ํ—ˆ์šฉ
      • Super-Pro โ†’ AmazonEC2ReadOnlyAccess
    • ๋ฆฌ์†Œ์Šค ๊ธฐ๋ฐ˜ ์ •์ฑ…
      • S3 โ†’ Dev-Intern์œผ๋กœ ์˜ค๋Š” ์š”์ฒญ์„ ๋ชจ๋‘ ํ—ˆ์šฉ

๋ฆฌ์†Œ์Šค ๊ธฐ๋ฐ˜ ์ •์ฑ… (Resource-based policies)

  • ์ง€์ •๋œ ๋ณด์•ˆ ์ฃผ์ฒด์— ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๊ถŒํ•œ์ด ์ ์šฉ๋˜๋Š” ์กฐ๊ฑด์„ ์ •์˜
  • ๊ฐ™์€ ๊ณ„์ • ๋‚ด๋ผ๋ฉด, ๋ฆฌ์†Œ์Šค ๊ธฐ๋ฐ˜ ์ •์ฑ…๊ณผ ์ž๊ฒฉ์ฆ๋ช… ๊ธฐ๋ฐ˜ ์ •์ฑ…์€ ํ•ฉ์ง‘ํ•ฉ ํ˜•ํƒœ๋กœ ์ •์ฑ…ํ‰๊ฐ€๊ฐ€ ์ด๋ฃจ์–ด์ง

์•ก์„ธ์Šค ์ œ์–ด ๋ฆฌ์ŠคํŠธ (Access Control Lists, ACLs)

  • ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•  AWS ๊ณ„์ •์ด๋‚˜ ๊ทธ๋ฃน๊ณผ ์•ก์„ธ์Šค ์œ ํ˜•์„ ์ •์˜
  • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์ˆ˜์‹  โ†’ S3์—์„œ ํ•ด๋‹น ACL์„ ํ™•์ธํ•ด ์š”์ฒญ์ž๊ฐ€ ํ•„์š”ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธ

IAM Role

  • ์‹ ๋ขฐํ•˜๋Š” ๊ฐœ์ฒด์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์—ญํ• ๊ณผ ์‚ฌ์šฉ์ž ๋ชจ๋‘ AWS์—์„œ ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ์—†๋Š” ๊ฒƒ์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ถŒํ•œ ์ •์ฑ…์„ ํฌํ•จํ•œ๋‹ค๋ฉด, ์—ญํ• ์˜ ๊ฒฝ์šฐ์—๋Š” ํ•œ ์‚ฌ๋žŒ๊ณผ๋งŒ ์—ฐ๊ด€๋˜์ง€ ์•Š๊ณ  ํ•ด๋‹น ์—ญํ• ์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋“ ์ง€ ๋งก์„ ์ˆ˜ ์žˆ์Œ
  • ํ‘œ์ค€ ์žฅ๊ธฐ ์ž๊ฒฉ ์ฆ๋ช…์ด ์—†์–ด์„œ ์—ญํ•  ์„ธ์…˜์„ ์œ„ํ•œ ์ž„์‹œ ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช… ์ œ๊ณต

RBAC(Role-Based Access Control)

  • ์—ฌ๋Ÿฌ ๊ถŒํ•œ์˜ ๋…ผ๋ฆฌ์ ์ธ ์ง‘ํ•ฉ๋“ค์„ ์—ญํ• ๋กœ ๋งŒ๋“ค๊ณ  ๊ทธ๋ฃน ๋˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์—ฐ๊ฒฐ
  • ํ•„์š”์— ๋”ฐ๋ผ ์—ญํ• ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค

Role Switch ๊ตฌ์„ฑ

Dev-Pro๊ฐ€ S3 ๋ฆฌ์†Œ์Šค ๊ธฐ๋ฐ˜ ์ •์ฑ… ์‚ญ์ œ๋ฅผ ์œ„ํ•ด SuperRole์„ ์ƒ์„ฑํ•˜๊ณ  Dev-Pro์—๊ฒŒ ํ• ๋‹นํ•˜์—ฌ Dev-Pro๊ฐ€ ๋ชจ๋“  ๊ถŒํ•œ์„ ์ˆ˜ํ–‰

  • Role์„ ์ƒ์„ฑ > ์ •์ฑ…์„ ์—ฐ๊ฒฐ > ์ƒ์„ฑ๋œ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ARN ํ™•์ธ > ์ƒˆ๋กœ ๋งŒ๋“  ์—ญํ• ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋น„์Šค STS ๊ธฐ๋ฐ˜์˜ ์œ„์ž„ ์ •์ฑ… ์ƒ์„ฑ > AssumeRole์— ๋Œ€ํ•œ ์ž‘์—… ํ—ˆ์šฉ > ํ•ด๋‹นํ•˜๋Š” role์˜ ARN ์„ค์ • > ์‚ฌ์šฉ์ž์— ๊ถŒํ•œ ์ถ”๊ฐ€
  • ๊ถŒํ•œ ์ถ”๊ฐ€ ํ›„ ์ถ”๊ฐ€ํ•œ Role์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด๋‹น ๊ณ„์ •์—์„œ ์—ญํ•  ์ „ํ™˜ > ์—ฐ๊ฒฐํ•ด๋†“์€ Role ์ด๋ฆ„๊ณผ Account ID๋กœ ์—ญํ•  ์ „ํ™˜
  • ์—ญํ• ์„ ์ „ํ™˜ํ•˜๋ฉด ๊ธฐ์กด์— ์ฃผ์–ด์ง„ ๊ถŒํ•œ์€ ๋ชจ๋‘ ์‚ฌ๋ผ์ง€๊ณ  ํ•ด๋‹น Role์— ํ• ๋‹น๋œ ๊ถŒํ•œ๋งŒ ์ถ”๊ฐ€๋จ

Amazon STS(Security Token Service) AWS ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ํ•„์š”ํ•œ ์‚ฌ์šฉ์ž๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ผ์‹œ์ ์ธ ๋ณด์•ˆ ์ž๊ฒฉ ์ฆ๋ช… ์ œ๊ณต STS๋กœ ์ž„์‹œ ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ฐœ๊ธ‰๋ฐ›์œผ๋ฉด Access Key, Secret Access Key, Session Token ๋“ฑ์ด ํ•จ๊ป˜ ๋ฐœ๊ธ‰๋˜์–ด ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค์— Role ๋ถ€์—ฌ

์‚ฌ์šฉ์ž๊ฐ€ S3์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š”๊ฒŒ ์•„๋‹Œ, EC2๊ฐ€ ๋Œ€์‹ ํ•ด์„œ S3์— ์ ‘๊ทผ

  • EC2์— S3 ์ฝ๊ธฐ ์›ํ•œ์„ ๊ฐ€์ง„ Role์„ ์ƒ์„ฑํ•˜๊ณ  EC2์— ๋ถ€์—ฌ
  • EC2๋Š” ํ•ด๋‹น Role์„ ์œ„์ž„(๋ณด์•ˆ > IAM ์—ญํ•  ์ˆ˜์ •)๋ฐ›์•„ S3์— ์ ‘๊ทผ

EC2 ์ธ์Šคํ„ด์Šค์˜ ์—ญํ• ์„ ์ˆ˜์ •ํ•˜์—ฌ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •

์ธ์Šคํ„ด์Šค์—์„œ aws s3 ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด๋ฉด ๋ชจ๋‘ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž„

๋งŒ์•ฝ์— Role์ด ์„ค์ • ์•ˆ๋œ์ฑ„๋กœ ํ™•์ธํ•˜๋ฉด ์ด์™€ ๊ฐ™์ด AWS์—์„œ ๋ง‰ํž˜

IAM ์‚ฌ๋ก€

EC2๊ฐ€ ํ™•์žฅ์„ ์œ„ํ•ด Auto Scaling์— ์ ‘๊ทผ์„ ํ•ด์„œ ์ƒํ˜ธ์ž‘์šฉ or Lambda๊ฐ€ S3์— ์ ‘๊ทผํ•ด์„œ ํŠน์ • ๋ฐ์ดํ„ฐ ์ ‘๊ทผ

IAM User๊ฐ€ ์•„๋‹Œ ๋ณด์•ˆ์ฃผ์ฒด์—๊ฒŒ ์ž„์‹œ์ ์œผ๋กœ ๊ถŒํ•œ ์ˆ˜ํ–‰ํ•˜์—ฌ API์ ์ธ ์ ‘๊ทผ์— ๋Œ€ํ•ด์„œ Role์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ผ์ • ์‹œ๊ฐ„ ์ดํ›„ Timeout๋˜๋Š” ์ž„์‹œ Credential์„ ๊ฐ€์ง€๊ณ  ๊ถŒํ•œ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅ

IAM ๋ชจ๋ฒ”์‚ฌ๋ก€

  1. AWS ๊ณ„์ • root ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ํ‚ค ์ž ๊ธˆ
  2. ๊ถŒํ•œ ์žˆ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ MFA ํ™œ์„ฑํ™”
  3. ๊ฐœ๋ณ„ IAM ์‚ฌ์šฉ์ž ๋งŒ๋“ค๊ธฐ
  4. ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜์—ฌ IAM ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ํ• ๋‹น
  5. ์ตœ์†Œ ๊ถŒํ•œ ๋ถ€์—ฌ
  6. ์„œ๋น„์Šค ๊ถŒํ•œ ์ œ์–ด์— ์—ญํ•  ์‚ฌ์šฉ
  7. ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ถŒํ•œ ์œ„์ž„
  8. ์ž๊ฒฉ ์ฆ๋ช…์„ ์ •๊ธฐ์ ์œผ๋กœ ๊ต์ฒด
  9. ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด ์ •์ฑ… ์กฐ๊ฑด ์‚ฌ์šฉ
  10. AWS ๊ณ„์ •์˜ ํ™œ๋™ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ฐ์‚ฌ