๐Ÿ›ก๏ธ AWS Organizations์—์„œ Service Control Policies (SCPs) ์ดํ•ดํ•˜๊ธฐ

๋ฐœํ–‰: (2025๋…„ 12์›” 2์ผ ์˜คํ›„ 12:47 GMT+9)
8 min read
์›๋ฌธ: Dev.to

Source: Dev.to

์†Œ๊ฐœ

SCP๊ฐ€ ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Service Control Policies (SCP)๋Š” IAM ๊ถŒํ•œ๊ณผ ๋‹ฌ๋ฆฌ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š๊ณ , ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ํ”ํžˆ ๊ฐ€๋“œ๋ ˆ์ผ ๋˜๋Š” ๋ฐ”๋ฆฌ์ผ€์ด๋“œ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, AWS ๊ฑฐ๋ฒ„๋„Œ์Šค์™€ ๊ธฐ์—…์˜ ๋ณด์•ˆยท์ปดํ”Œ๋ผ์ด์–ธ์Šค ์ง€์นจ์„ ์„ค์ •ํ•˜๋Š” ํ•ต์‹ฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ๋ช‡ ๊ฐ€์ง€ ์‚ฌ์ „ ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

IAM ์ •์ฑ…

IAM ์ •์ฑ…์˜ ํ•œ ์ข…๋ฅ˜๋กœ, AWS ์‚ฌ์šฉ์ž์™€ ์—ญํ• ์— ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AWS Organizations

AWS Organizations๋Š” ์—ฌ๋Ÿฌ AWS ๊ณ„์ •์„ ์ค‘์•™์—์„œ ๊ด€๋ฆฌยท์šด์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. Organizations๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด:

  • AWS ๊ณ„์ • ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ (Account Management)
  • AWS ๊ณ„์ • ๋น„์šฉ ํ†ตํ•ฉ (Billing)
  • IAM Identity Center์™€ ํ•จ๊ป˜ AWS ๊ณ„์ • ๊ถŒํ•œ ๊ด€๋ฆฌ (Identity and Access Management)
  • AWS ๊ณ„์ •์— ๋ณด์•ˆ ์ •์ฑ… ์ ์šฉ (SCPs)
  • ๋‹ค์ค‘ ๊ณ„์ • ์„œ๋น„์Šค ํ™œ์„ฑํ™” (Multiโ€‘account)
  • ์กฐ์ง ๋‹จ์œ„(Organizational Units)๋กœ ๊ณ„์ • ๊ทธ๋ฃนํ™” (์กฐ์ง ๊ณ„์ธต)
  • ๋‹ค์ค‘ ๊ณ„์ • ํ™˜๊ฒฝ ๊ฐ์‚ฌ (Audit)
  • ์—ฌ๋Ÿฌ ๊ณ„์ • ๊ฐ„ ๋ฆฌ์†Œ์Šค ๊ณต์œ  (Resource sharing)
  • CloudFormation์„ ํ†ตํ•œ ๋‹ค์ค‘ ๊ณ„์ • ํ”„๋กœ๋น„์ €๋‹ ์ž๋™ํ™” (Multiโ€‘account)

Service Control Policies (SCPs)

AWS Organizations์˜ ์ •์ฑ… ์œ ํ˜•์œผ๋กœ, ์กฐ์ง์— ์†ํ•œ AWS ๊ณ„์ •์˜ ๊ถŒํ•œ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

SCP ๊ตฌ์กฐ

SCP ๊ตฌ๋ฌธ

SCP์˜ ์ฃผ์š” ์š”์†Œ

์š”์†Œ์—ญํ• 
Statement์ •์ฑ…์˜ ์ตœ์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ. ํ•˜๋‚˜์˜ SCP์— ์—ฌ๋Ÿฌ statement๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Œ(์ฃผ์˜: ๋ฌธ์ž ์ˆ˜ ์ œํ•œ ์กด์žฌ).
Effectํ•ด๋‹น statement๊ฐ€ ๋™์ž‘์„ ํ—ˆ์šฉ(Allow)ํ• ์ง€ ๊ฑฐ๋ถ€(Deny)ํ• ์ง€ ์ •์˜. ์ฐธ๊ณ : Allow๋Š” ์กฐ๊ฑด๋ถ€๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Œ.
Actionํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ฐจ๋‹จํ•  AWS ์ž‘์—…์„ ์ง€์ •(e.g., s3:PutObject).
Resource์ •์ฑ…์ด ์ ์šฉ๋  AWS ๋ฆฌ์†Œ์Šค๋ฅผ ์ง€์ •(e.g., ํŠน์ • ๋ฒ„ํ‚ท).
Condition (์˜ต์…˜)ํŠน์ • ์ƒํ™ฉ์—์„œ๋งŒ statement๊ฐ€ ์ ์šฉ๋˜๋„๋ก ์กฐ๊ฑด์„ ์ถ”๊ฐ€.
NotActionAction์˜ ๋ฐ˜๋Œ€: SCP์—์„œ ์ œ์™ธํ•  ์ž‘์—…์„ ์ง€์ •.
NotResourceResource์˜ ๋ฐ˜๋Œ€: SCP์—์„œ ์ œ์™ธํ•  ๋ฆฌ์†Œ์Šค๋ฅผ ์ง€์ •.
Sid (์˜ต์…˜)statement๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์นœ์ˆ™ํ•œ ์ด๋ฆ„.
Version์ •์ฑ… ์–ธ์–ด ๋ฒ„์ „ ์ •์˜(ํ•ญ์ƒ "2012-10-17" ์‚ฌ์šฉ).

SCP ๋™์ž‘ ๋ฐฉ์‹

SCP๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๋„ค ๊ฐ€์ง€ ํ•ต์‹ฌ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

1. ๊ธฐ๋ณธ ์›์น™

  • ์„ฑ๊ฒฉ: ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์˜ค์ง ์ œํ•œ๋งŒ ํ•จ.
  • ํ‰๊ฐ€: ๊ถŒํ•œ์€ IAM ์ •์ฑ…์—์„œ ํ—ˆ์šฉ๋˜๊ณ  SCP์—์„œ ํ—ˆ์šฉ๋˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€๋˜์ง€ ์•Š์„ ๋•Œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ตœ์ข… ํ‰๊ฐ€๋Š” AWS ๊ณต์‹ ๋ฌธ์„œ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์ ์šฉ ๋ฒ”์œ„: ๋ˆ„๊ตฌ์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”๊ฐ€?

  • ํšŒ์› ๊ณ„์ •: SCP๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์™€ ์—ญํ• , ๋ฃจํŠธ ์‚ฌ์šฉ์ž ํฌํ•จ์˜ ๊ถŒํ•œ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
  • ์œ„์ž„๋œ ๊ด€๋ฆฌ์ž: ํšŒ์› ๊ณ„์ •์— ์†ํ•˜๋ฏ€๋กœ ๋™์ผํ•˜๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • ํ•ต์‹ฌ ์˜ˆ์™ธ: ๊ด€๋ฆฌ ๊ณ„์ •(Management Account) ์€ SCP์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ.

3. ๋‹ค๋ฅธ ์ •์ฑ…๊ณผ์˜ ์ƒํ˜ธ ์ž‘์šฉ

  • IAM Deny: ๋ชจ๋“  SCP๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • SCP Deny: AdministratorAccess์™€ ๊ฐ™์€ IAM ํ—ˆ์šฉ์ด ์žˆ๋”๋ผ๋„ ๋ช…์‹œ์ ์œผ๋กœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.
  • Permission Boundaries: ์ตœ์ข… ํ‰๊ฐ€๋Š” IAM Allow + SCP Allow + Boundary Allow๊ฐ€ ๋ชจ๋‘ ์ถฉ์กฑ๋˜์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

4. ๊ธฐ์ˆ ์  ์˜ˆ์™ธ

  • Serviceโ€‘Linked Roles: AWS ์„œ๋น„์Šค๊ฐ€ ์ •์ƒ ์ž‘๋™ํ•˜๋„๋ก ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— SCP๋กœ ์ œํ•œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Resourceโ€‘Based Policies: SCP์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์œผ๋ฉฐ, ๋ฆฌ์†Œ์Šค ์ •์ฑ…์ด ํ—ˆ์šฉํ•˜๋ฉด ์™ธ๋ถ€ ์ ‘๊ทผ์ด ๊ณ„์† ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: S3 ๋ฒ„ํ‚ท).
  • ์™ธ๋ถ€ ์‚ฌ์šฉ์ž: ์ œํ•œ๋œ ๊ณ„์ • ๋‚ด ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๋”๋ผ๋„ SCP์— ์˜ํ•ด ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

SCP๋Š” ์–ด๋””์— ์ ์šฉ๋˜๋Š”๊ฐ€?

AWS Organizations์—์„œ SCP๋Š” ์กฐ์ง์— ์†ํ•œ AWS ๊ณ„์ • ๋ฐ ์กฐ์ง ๋‹จ์œ„(OU) ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. OU๋Š” ๊ณ„์ •์„ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋”์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ AWS Organizations์˜ ์กฐ์ง ๊ณ„์ธต ๊ตฌ์กฐ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

์กฐ์ง ๊ตฌ์กฐ ์ด๋ฏธ์ง€

์กฐ์ง ๊ณ„์ธต์˜ ๊ตฌ์„ฑ ์š”์†Œ

  • ๋ฃจํŠธ ๊ณ„์ • (Root): ์กฐ์ง์˜ ์ตœ์ƒ์œ„ ๊ณ„์ •. ์ค‘์š”: ๋ฃจํŠธ์— SCP๋ฅผ ์ ์šฉํ•˜๋ฉด ์กฐ์ง ๋‚ด ๋ชจ๋“  ๊ณ„์ •์— ์˜ˆ์™ธ ์—†์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์กฐ์ง ๋‹จ์œ„ (OUs): ๊ณ„์ •์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ํด๋”. OU์— SCP๋ฅผ ์ ์šฉํ•˜๋ฉด ํ•ด๋‹น OU์— ์†ํ•œ ๋ชจ๋“  ๊ณ„์ •์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๊ณ„์ •: ์กฐ์ง ๋‚ด ๊ฐœ๋ณ„ AWS ๊ณ„์ •. ํŠน์ • ๊ณ„์ •์— SCP๋ฅผ ์ ์šฉํ•˜๋ฉด ๊ทธ ๊ณ„์ •์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ •์ฑ… ์ƒ์†์„ ํ†ตํ•ด ํ•˜๋‚˜์˜ SCP๋ฅผ ์—ฌ๋Ÿฌ ๊ณ„์ •์— ๋™์‹œ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์Šต: SCP ๋งŒ๋“ค๊ธฐ

์‹ค์Šต ๋น„์šฉ: $0

โš ๏ธ ์ฃผ์˜: ํ”„๋กœ๋•์…˜ ๊ณ„์ •์ด๋‚˜ ํ”„๋กœ๋•์…˜ ๊ณ„์ •์ด ํฌํ•จ๋œ ํ™˜๊ฒฝ์— ์ ˆ๋Œ€ SCP๋ฅผ ์ ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ฐ˜๋“œ์‹œ ํ…Œ์ŠคํŠธ ๊ณ„์ •์—์„œ SCP ๋™์ž‘์„ ๊ฒ€์ฆํ•œ ํ›„ ๋‹ค์ˆ˜ ๊ณ„์ •์— ์ ์šฉํ•˜์‹ญ์‹œ์˜ค.

A. SCP ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์‹คํ—˜์‹ค ๊ตฌ์„ฑ

๐Ÿ” ์‚ฌ์ „ ์š”๊ตฌ ์‚ฌํ•ญ

  • ์กฐ์ง์„ ๋งŒ๋“ค ์ฃผ ๊ณ„์ •(payer) ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ๊ณ„์ •์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ ๊ณ„์ •์— ๋ณ„๋„์˜ ๊ฒฐ์ œ ์ˆ˜๋‹จ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โœ… ๋‹จ๊ณ„ 1: AWS์—์„œ ์กฐ์ง ์ƒ์„ฑ (์•„์ง ์—†์„ ๊ฒฝ์šฐ)

  1. ๊ด€๋ฆฌ์ž( payer/root) ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  2. AWS Organizations ์„œ๋น„์Šค๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. ์กฐ์ง์ด ์•„์ง ์—†์œผ๋ฉด Create Organization ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  ์ƒ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๐ŸŽ‰ ์ด์ œ SCP๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ๋‹จ๊ณ„ 2: ํ…Œ์ŠคํŠธ์šฉ ์กฐ์ง ๋‹จ์œ„(OU) ์ƒ์„ฑ

  1. AWS Organizations์—์„œ AWS accounts ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฃจํŠธ OU๋ฅผ ์„ ํƒํ•˜๊ณ  Actions ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. Create new organizational unit (OU) ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ช…ํ™•ํ•œ ์ด๋ฆ„์„ ์ง€์ •(e.g., lab-scp-test)ํ•˜๊ณ  ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

โœ… ๋‹จ๊ณ„ 3: OU ์•ˆ์— ํšŒ์› ๊ณ„์ • ์ƒ์„ฑ

  1. AWS Organizations์—์„œ AWS Accounts โ†’ Add an AWS account โ†’ Create an AWS account ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‹ค์Œ ํ•ญ๋ชฉ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค:
    • Account name: lab-scp-member (๋˜๋Š” ์›ํ•˜๋Š” ์ด๋ฆ„)
    • Email address: ๊ด€๋ฆฌ์ž ๊ณ„์ •์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•œ ์ด๋ฉ”์ผ ๋ณ„์นญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ์ƒ์„ฑ ์ ˆ์ฐจ๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณ„์ •์ด SCP๋ฅผ ๊ฒ€์ฆํ•  โ€œํ…Œ์ŠคํŠธ ๊ณ„์ •โ€์ด ๋ฉ๋‹ˆ๋‹ค.

(ํ•„์š”์— ๋”ฐ๋ผ ์ •์ฑ… ์„ค์ • ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ๊ณ„์† ์ง„ํ–‰ํ•˜์„ธ์š”.)

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

์•ŒํŽ˜๋“œ๋ ˆํ…Œ์—์„œ ๋‚ด ์ฃผ๋ณ€ ํŽ‘ํฌ ์ˆ˜๋ฆฌ

์†Œ๊ฐœ ์šฐ๋ฆฌ ์›Œํฌ์ˆ์€ ์•ŒํŽ˜๋“œ๋ ˆํ…Œ์— ์žˆ๋“  ๋ผ์Šค ๋กœ...์— ์žˆ๋“  ๋น ๋ฅด๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋ชจ๋“  ํƒ€์ด์–ด ๋น„์ƒ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ณ„์ • ์ „ํ™˜

@blink_c5eb0afe3975https://dev.to/blink_c5eb0afe3975 ์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์ €๋Š” ๋‹ค์‹œ ์ œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ธฐ๋กํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋‹ˆ, ์ด๊ฒƒ์„ ๋‹ค๋ฅธโ€ฆ

์กฐ์ง์—์„œ Excel์„ ์‚ฌ์šฉํ•œ ํŒ๋งค ์˜ˆ์ธก ๋ฐ ์ˆ˜์ต ์˜ˆ์ธก

์†Œ๊ฐœ: ๊ฐ•๋ ฅํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์ „๋žต์€ ๋ฏธ๋ž˜ ์„ฑ๊ณผ๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋Šฅ๋ ฅ์—์„œ ์‹œ์ž‘๋˜๋ฉฐ, Excel์€ ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

Strands ์—์ด์ „ํŠธ + Agent Core AWS

์‹œ์ž‘ ๊ฐ€์ด๋“œ: Amazon Bedrock AgentCore ๋ชฉ์ฐจ - ์‚ฌ์ „ ์š”๊ตฌ ์‚ฌํ•ญ requisitosโ€‘previos - ํˆดํ‚ท ์„ค์น˜ instalaciรณnโ€‘delโ€‘toolkit - ์ƒ์„ฑ โ€ฆ