2818 ๋‹จ์–ด
14 ๋ถ„
๐Ÿ” IAM Security Best Practices

๐Ÿ” IAM Security Best Practices#

์ถœ์ฒ˜: AWS IAM ๊ณต์‹ ๋ฌธ์„œ โ€” Security best practices in IAM

URL: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html

๋ชฉ์ : SAA-C03 ์‹œํ—˜ ๋Œ€๋น„ ํ•ต์‹ฌ ๊ฐœ๋… ์ •๋ฆฌ


๋ชฉ์ฐจ#

  1. 1. Identity ๊ด€๋ฆฌ ์›์น™
  2. 2. Credential ๋ณด์•ˆ ๊ด€๋ฆฌ
  3. 3. ์ตœ์†Œ ๊ถŒํ•œ ์›์น™ (Least Privilege)
  4. 4. MFA (๋‹ค์ค‘ ์ธ์ฆ)
  5. 5. IAM Policy ๊ตฌ์„ฑ ์ „๋žต
  6. 6. ํฌ๋กœ์Šค ๊ณ„์ • & ์™ธ๋ถ€ ์ ‘๊ทผ ์ œ์–ด
  7. 7. ๋ชจ๋‹ˆํ„ฐ๋ง & ๊ฐ์‚ฌ
  8. 8. ๋ฃจํŠธ ๊ณ„์ • ๋ณดํ˜ธ
  9. 9. ์‹œํ—˜ ๋‹จ๊ณจ ํŒจํ„ด ์š”์•ฝ

1. Identity ๊ด€๋ฆฌ ์›์น™#

ํ•ต์‹ฌ ์›์น™: ์ž„์‹œ ์ž๊ฒฉ์ฆ๋ช… ์‚ฌ์šฉ#

์žฅ๊ธฐ ์ž๊ฒฉ์ฆ๋ช…(Long-term credentials) ๋Œ€์‹  ์ž„์‹œ ์ž๊ฒฉ์ฆ๋ช…(Temporary credentials)์„ ์‚ฌ์šฉํ•˜๋ผ.

Long-term credentials = IAM User Access Key โ†’ ๋ณด์•ˆ ๋ฆฌ์Šคํฌ ๋†’์Œ
Temporary credentials = IAM Role (STS) โ†’ ๊ถŒ์žฅ ๋ฐฉ์‹

1-1. ํœด๋จผ ์‚ฌ์šฉ์ž โ€” Federation + IdP ์‚ฌ์šฉ#

๊ถŒ์žฅ ๋ฐฉ์‹:

  • ํœด๋จผ ์‚ฌ์šฉ์ž(๊ฐœ๋ฐœ์ž, ๊ด€๋ฆฌ์ž, ์šด์˜์ž)์—๊ฒŒ ๊ฐœ๋ณ„ IAM User ์ƒ์„ฑ ๊ธˆ์ง€ ๊ถŒ๊ณ 
  • ๋Œ€์‹  ์™ธ๋ถ€ IdP(Identity Provider)์™€ ํŽ˜๋”๋ ˆ์ด์…˜ ์‚ฌ์šฉ

๊ตฌํ˜„ ๋ฐฉ๋ฒ•:

์ƒํ™ฉ๊ถŒ์žฅ ๋ฐฉ์‹
๋‹ค์ค‘ ๊ณ„์ • ์ค‘์•™ ๊ด€๋ฆฌ (๊ถŒ์žฅ)AWS IAM Identity Center (SSO)
๋‹จ์ผ ๊ณ„์ • ์†Œ๊ทœ๋ชจIAM + SAML 2.0 ๋˜๋Š” OIDC ์ง์ ‘ ํŽ˜๋”๋ ˆ์ด์…˜
๋ชจ๋ฐ”์ผ/์›น์•ฑ ์‚ฌ์šฉ์žAmazon Cognito Identity Pools

์ง€์› ํ”„๋กœํ† ์ฝœ:

  • SAML 2.0: Active Directory Federation Services(ADFS), Shibboleth ๋“ฑ
  • OIDC: GitHub Actions ๋“ฑ AWS ์™ธ๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ

์ด์ :

  • ์‚ฌ๋‚ด ๋””๋ ‰ํ† ๋ฆฌ(AD ๋“ฑ)์™€ ํ†ตํ•ฉ โ†’ ๋ณ„๋„ IAM User ๊ด€๋ฆฌ ๋ถˆํ•„์š”
  • ์žฅ๊ธฐ Access Key ๋ฐฐํฌ/๊ด€๋ฆฌ ๋ถˆํ•„์š”
  • ๊ณ„์ • ํƒˆํ‡ด ์‹œ IdP์—์„œ ๋น„ํ™œ์„ฑํ™”๋งŒ ํ•˜๋ฉด AWS ์ ‘๊ทผ ์ž๋™ ์ฐจ๋‹จ
TIP
  • โ€œ์‚ฌ๋‚ด AD ๊ธฐ๋ฐ˜ SSO๋กœ AWS ์ ‘๊ทผโ€ โ†’ IAM Identity Center + SAML
  • โ€œGitHub Actions๊ฐ€ AWS ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผโ€ โ†’ OIDC ํŽ˜๋”๋ ˆ์ด์…˜
  • ์ค‘์•™ ์ง‘์ค‘์‹ ๋‹ค์ค‘ ๊ณ„์ • ์ ‘๊ทผ ๊ด€๋ฆฌ โ†’ IAM Identity Center (๊ตฌ AWS SSO)

1-2. ์›Œํฌ๋กœ๋“œ โ€” IAM Role ์‚ฌ์šฉ#

์›์น™: EC2, Lambda ๋“ฑ AWS ๋ฆฌ์†Œ์Šค๋Š” IAM Role ์‚ฌ์šฉ (Access Key ์ ˆ๋Œ€ ๊ธˆ์ง€)

EC2 ์ธ์Šคํ„ด์Šค โ†’ Instance Profile (IAM Role)
Lambda ํ•จ์ˆ˜ โ†’ Execution Role (IAM Role)
ECS ํƒœ์Šคํฌ โ†’ Task Role (IAM Role)
GitHub Actions โ†’ OIDC โ†’ IAM Role AssumeRole

์™œ Role์ธ๊ฐ€?

  • STS(Security Token Service)๊ฐ€ ์ž„์‹œ ์ž๊ฒฉ์ฆ๋ช… ์ž๋™ ๋ฐœ๊ธ‰ยท๊ฐฑ์‹ 
  • Access Key๊ฐ€ ์ฝ”๋“œ/ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ํ•˜๋“œ์ฝ”๋”ฉ๋˜๋Š” ๋ฆฌ์Šคํฌ ์ œ๊ฑฐ
  • AWS SDK๊ฐ€ Instance Profile / ํ™˜๊ฒฝ ์ฒด์ด๋‹์œผ๋กœ ์ž๋™ ์ž๊ฒฉ์ฆ๋ช… ํš๋“
TIP
  • โ€œEC2์—์„œ S3 ์ ‘๊ทผโ€ โ†’ EC2์— IAM Role ๋ถ€์—ฌ (Access Key ์ฝ”๋“œ ๋‚ด ์„ค์ • X)
  • IAM User๊ฐ€ ํ•„์š”ํ•œ ์˜ˆ์™ธ ์ผ€์ด์Šค: IAM Role์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ

2. Credential ๋ณด์•ˆ ๊ด€๋ฆฌ#

2-1. Access Key ๊ด€๋ฆฌ#

์›์น™๋‚ด์šฉ
์žฅ๊ธฐ ํ‚ค ์ตœ์†Œํ™”๊ฐ€๋Šฅํ•œ IAM Role๋กœ ๋Œ€์ฒด. ๋ถˆ๊ฐ€ํ”ผํ•  ๊ฒฝ์šฐ๋งŒ IAM User Access Key ์‚ฌ์šฉ
์ •๊ธฐ ๋กœํ…Œ์ด์…˜ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐฑ์‹ . AWS Config ๋ฃฐ๋กœ 90์ผ ๋ฏธ์‚ฌ์šฉ ํ‚ค ํƒ์ง€
๋ฏธ์‚ฌ์šฉ ํ‚ค ์ œ๊ฑฐ45์ผ ์ด์ƒ ๋ฏธ์‚ฌ์šฉ โ†’ ๋น„ํ™œ์„ฑํ™” ๋˜๋Š” ์‚ญ์ œ (CIS Benchmark ๊ถŒ๊ณ )
ํ•˜๋“œ์ฝ”๋”ฉ ๊ธˆ์ง€์ฝ”๋“œ, ํ™˜๊ฒฝ๋ณ€์ˆ˜, Git ์ €์žฅ์†Œ์— Access Key ์ ˆ๋Œ€ ํฌํ•จ ๊ธˆ์ง€

๊ฐ์ง€ ๋„๊ตฌ:

  • IAM Credential Report: ๊ณ„์ • ์ „์ฒด ์ž๊ฒฉ์ฆ๋ช… ํ˜„ํ™ฉ ๋ณด๊ณ ์„œ
  • IAM Last Accessed Information: ๋งˆ์ง€๋ง‰ ์„œ๋น„์Šค/์•ก์…˜ ์‚ฌ์šฉ ์‹œ๊ฐ„
  • AWS Config Rules: ํŠน์ • ์ผ์ˆ˜ ์ด์ƒ ๋ฏธ์‚ฌ์šฉ ํ‚ค ์ž๋™ ํƒ์ง€

2-2. Secrets ๊ด€๋ฆฌ Best Practice#

DB ํŒจ์Šค์›Œ๋“œ, API Key ๋“ฑ ์‹œํฌ๋ฆฟ โ†’ AWS Secrets Manager
(์ž๋™ ๋กœํ…Œ์ด์…˜ ์ง€์›)
๋‹จ์ˆœ ์„ค์ •๊ฐ’, ๋น„์‹œํฌ๋ฆฟ ํŒŒ๋ผ๋ฏธํ„ฐ โ†’ SSM Parameter Store Standard
(๋ฌด๋ฃŒ)
TIP

RDS ํŒจ์Šค์›Œ๋“œ ์ž๋™ ๋กœํ…Œ์ด์…˜ โ†’ Secrets Manager


3. ์ตœ์†Œ ๊ถŒํ•œ ์›์น™ (Least Privilege)#

์›์น™ ์ •์˜#

์ž‘์—… ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•˜๋ผ. ์ดˆ๊ณผ ๊ถŒํ•œ์€ ์˜๋„์น˜ ์•Š์€ ๋™์ž‘ ๋ฐ ๋ณด์•ˆ ์‚ฌ๊ณ ์˜ ์›์ธ.

๊ตฌํ˜„ ๋‹จ๊ณ„#

1๋‹จ๊ณ„: AWS Managed Policy๋กœ ์‹œ์ž‘ (๋น ๋ฅธ ์„ค์ •)
โ†“
2๋‹จ๊ณ„: ์‹ค์ œ ์‚ฌ์šฉ ํŒจํ„ด ํŒŒ์•… (CloudTrail ๋กœ๊ทธ ๋ถ„์„)
โ†“
3๋‹จ๊ณ„: IAM Access Analyzer๋กœ ์ตœ์†Œ ๊ถŒํ•œ Policy ์ž๋™ ์ƒ์„ฑ
โ†“
4๋‹จ๊ณ„: Customer Managed Policy๋กœ ์„ธ๋ฐ€ํ•œ ๊ถŒํ•œ ์ ์šฉ

IAM Access Analyzer ํ™œ์šฉ#

๊ธฐ๋Šฅ์„ค๋ช…
Policy GenerationCloudTrail ๋กœ๊ทธ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ ์‚ฌ์šฉ ๊ถŒํ•œ๋งŒ ์ถ”์ถœํ•œ Policy ์ž๋™ ์ƒ์„ฑ
Policy Validation100๊ฐœ ์ด์ƒ์˜ ์ •์ฑ… ๊ฒ€์‚ฌ. ๊ณผ๋„ํ•˜๊ฒŒ ํ—ˆ์šฉ์ ์ธ ๊ถŒํ•œ์— ๋ณด์•ˆ ๊ฒฝ๊ณ 
External Access Findings์™ธ๋ถ€(๋‹ค๋ฅธ ๊ณ„์ •/์ธํ„ฐ๋„ท)์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค ํƒ์ง€
TIP
  • โ€œCloudTrail ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์†Œ ๊ถŒํ•œ ์ž๋™ ์ƒ์„ฑโ€ โ†’ IAM Access Analyzer Policy Generation
  • โ€œ์™ธ๋ถ€ ์ ‘๊ทผ ๊ฐ€๋Šฅ ๋ฆฌ์†Œ์Šค ํƒ์ง€โ€ โ†’ IAM Access Analyzer External Access

ํ”ํ•œ ์‹ค์ˆ˜: ์™€์ผ๋“œ์นด๋“œ ๊ถŒํ•œ#

// โŒ ์ ˆ๋Œ€ ๊ธˆ์ง€ โ€” Full Admin ๊ถŒํ•œ
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
// โœ… ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹ โ€” ํŠน์ • ์„œ๋น„์Šคยท๋ฆฌ์†Œ์Šคยท์กฐ๊ฑด ๋ช…์‹œ
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"Bool": {"aws:SecureTransport": "true"}
}
}
TIP

"Action": "*" + "Resource": "*" = ๋ณด์•ˆ ์œ„๋ฐ˜. ์ œ๊ฑฐ ๋˜๋Š” ์„ธ๋ถ„ํ™” ํ•„์š”


Permission Boundary (๊ถŒํ•œ ๊ฒฝ๊ณ„)#

  • IAM Identity/Role์— ์„ค์ • ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€ ํ—ˆ์šฉ ๊ถŒํ•œ ์ƒํ•œ์„ 
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ๋ณด๋‹ค ๋†’์€ ๊ถŒํ•œ์˜ Role/User ์ƒ์„ฑํ•˜๋Š” ๊ถŒํ•œ ์ƒ์Šน(Privilege Escalation) ๋ฐฉ์ง€
  • Permission Boundary๋ฅผ ๋ฒ—์–ด๋‚œ ๊ถŒํ•œ์€ ์‹ค์ œ Policy์— ์žˆ์–ด๋„ ๊ฑฐ๋ถ€๋จ
Permission Boundary = ์šธํƒ€๋ฆฌ
Identity-based Policy = ์šธํƒ€๋ฆฌ ์•ˆ์—์„œ์˜ ์‹ค์ œ ๊ถŒํ•œ
โ†’ ๋‘ Policy์˜ ๊ต์ง‘ํ•ฉ๋งŒ ์œ ํšจ
TIP

๊ฐœ๋ฐœ์ž์—๊ฒŒ IAM ๊ด€๋ฆฌ ๊ถŒํ•œ ์œ„์ž„ + ๊ถŒํ•œ ์ƒ์Šน ๋ฐฉ์ง€ โ†’ Permission Boundary


4. MFA (๋‹ค์ค‘ ์ธ์ฆ)#

MFA ์ ์šฉ ์›์น™#

๋Œ€์ƒ์š”๊ตฌ ์ˆ˜์ค€
๋ฃจํŠธ ๊ณ„์ •Hardware MFA ๊ฐ•๋ ฅ ๊ถŒ๊ณ  (YubiKey ๋“ฑ)
ํŠน๊ถŒ IAM User (๊ด€๋ฆฌ์ž)MFA ํ•„์ˆ˜
์ผ๋ฐ˜ IAM UserMFA ๊ฐ•๋ ฅ ๊ถŒ๊ณ 
Console ๋กœ๊ทธ์ธMFA ์กฐ๊ฑด Policy๋กœ ๊ฐ•์ œ ๊ฐ€๋Šฅ

MFA ๊ฐ•์ œ Policy ํŒจํ„ด#

{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"BoolIfExists": {
"aws:MultiFactorAuthPresent": "false"
}
}
}

โ†’ MFA ์—†์ด ๋กœ๊ทธ์ธ ์‹œ ๋ชจ๋“  ์ž‘์—… ๊ฑฐ๋ถ€

MFA ๊ธฐ๊ธฐ ์œ ํ˜•:

  • Virtual MFA: Google Authenticator, Authy (์†Œํ”„ํŠธ์›จ์–ด)
  • Hardware MFA: YubiKey, Gemalto (๋ฌผ๋ฆฌ ์žฅ์น˜) โ€” ๋ฃจํŠธ ๊ณ„์ • ๊ถŒ์žฅ
  • FIDO Security Key: FIDO2/WebAuthn ์ง€์› ํ•˜๋“œ์›จ์–ด ํ‚ค
TIP
  • ๋ฃจํŠธ ๊ณ„์ • + ๊ฐ•๋ ฅ ๋ณด์•ˆ โ†’ Hardware MFA
  • MFA ์—†์ด API ์ ‘๊ทผ ์ฐจ๋‹จ โ†’ aws:MultiFactorAuthPresent: false ์กฐ๊ฑด์œผ๋กœ Deny

5. IAM Policy ๊ตฌ์„ฑ ์ „๋žต#

5-1. Policy ํ‰๊ฐ€ ๋กœ์ง (์‹œํ—˜ ํ•ต์‹ฌ)#

1. Explicit Deny โ†’ ์žˆ์œผ๋ฉด ์ฆ‰์‹œ ๊ฑฐ๋ถ€ (์ตœ์šฐ์„ )
2. Organizations SCP โ†’ OU/๊ณ„์ • ๋‹จ์œ„ guardrail
3. Resource-based Policy (+ Identity-based Policy)
4. Permission Boundary โ†’ ์ตœ๋Œ€ ํ—ˆ์šฉ ์ƒํ•œ
5. Session Policy โ†’ AssumeRole ์‹œ ์ถ”๊ฐ€ ์ œํ•œ
6. Identity-based Policy
โ†“
๊ฒฐ๋ก : Default = Implicit Deny
๋ชจ๋“  ๋ ˆ์ด์–ด ํ†ต๊ณผ + Explicit Allow ์žˆ์„ ๋•Œ๋งŒ ํ—ˆ์šฉ
TIP

โ€œExplicit Deny๋Š” ์–ด๋–ค Allow๋ณด๋‹ค ์šฐ์„ โ€ โ€” ํ‰๊ฐ€ ์ˆœ์„œ ์•”๊ธฐ ํ•„์ˆ˜


5-2. Policy ์œ ํ˜• ๋น„๊ต#

์œ ํ˜•๋ถ€์ฐฉ ๋Œ€์ƒํŠน์ง•
Identity-basedUser, Group, Role๊ฐ€์žฅ ์ผ๋ฐ˜์ . ์ธํ”„๋ผ ๊ถŒํ•œ ์ •์˜
Resource-basedS3, SQS, KMS ๋“ฑ ๋ฆฌ์†Œ์Šคํฌ๋กœ์Šค ๊ณ„์ • ์ ‘๊ทผ ํ—ˆ์šฉ ๊ฐ€๋Šฅ
Permission BoundaryUser, Role์ตœ๋Œ€ ํ—ˆ์šฉ ๊ถŒํ•œ ์ƒํ•œ ์„ค์ •
SCPOU, ๊ณ„์ • (Organizations)Guardrail. Allow ๋ถ€์—ฌ ์•ˆ ํ•จ. ํ—ˆ์šฉ ๋ฒ”์œ„๋งŒ ์ œํ•œ
Session PolicyAssumeRole ํ˜ธ์ถœ ์‹œ์ž„์‹œ ์„ธ์…˜์˜ ๊ถŒํ•œ ์ถ”๊ฐ€ ์ œํ•œ

5-3. User vs Group vs Role ์šด์˜ Best Practice#

IAM User โ†’ ์›์น™์ ์œผ๋กœ ์‚ฌ๋žŒ์—๊ฒŒ ์ƒ์„ฑ ์ง€์–‘ (Federation ์šฐ์„ )
๋ถˆ๊ฐ€ํ”ผํ•˜๋ฉด ์ตœ์†Œ ๊ถŒํ•œ + ์ฃผ๊ธฐ์  ์ž๊ฒฉ์ฆ๋ช… ๊ฐ์‚ฌ
IAM Group โ†’ ๋‹ค์ˆ˜ User์— ๋™์ผ Policy ์ผ๊ด„ ์ ์šฉ
User์—๊ฒŒ ์ง์ ‘ Policy ๋ถ€์ฐฉ ๊ธˆ์ง€ โ†’ Group์„ ํ†ตํ•ด ๊ด€๋ฆฌ
IAM Role โ†’ AWS ๋ฆฌ์†Œ์Šค, ํฌ๋กœ์Šค ๊ณ„์ • ์ ‘๊ทผ, ํŽ˜๋”๋ ˆ์ด์…˜ ์‚ฌ์šฉ์ž
์ž„์‹œ ์ž๊ฒฉ์ฆ๋ช… ์ž๋™ ๋ฐœ๊ธ‰ (STS AssumeRole)
TIP
  • Policy๋ฅผ ์ง์ ‘ User์— ๋ถ€์ฐฉํ•˜์ง€ ์•Š๊ณ  Group ํ†ตํ•ด ๊ด€๋ฆฌ = ์šด์˜ ๋ณต์žก๋„ ๊ฐ์†Œ Best Practice
  • ๊ณ„์ • ์ˆ˜ ์ฆ๊ฐ€ โ†’ Group/Role ๊ธฐ๋ฐ˜ ๊ด€๋ฆฌ๊ฐ€ ํ•„์ˆ˜

6. ํฌ๋กœ์Šค ๊ณ„์ • & ์™ธ๋ถ€ ์ ‘๊ทผ ์ œ์–ด#

6-1. SCP (Service Control Policies)#

  • AWS Organizations์—์„œ OU ๋˜๋Š” ๊ณ„์ • ๋‹จ์œ„๋กœ ์ ์šฉ
  • Allow๋ฅผ ๋ถ€์—ฌํ•˜์ง€ ์•Š์Œ โ€” ์ตœ๋Œ€ ํ—ˆ์šฉ ๋ฒ”์œ„(Guardrail)๋งŒ ์„ค์ •
  • ๋ฃจํŠธ ๊ณ„์ •๋„ SCP๋ฅผ ๋ฒ—์–ด๋‚  ์ˆ˜ ์—†์Œ

ํ™œ์šฉ ์˜ˆ์‹œ:

ํ”„๋กœ๋•์…˜ OU โ†’ SCP: us-east-1, ap-northeast-2 ๋ฆฌ์ „๋งŒ ํ—ˆ์šฉ
๊ฐœ๋ฐœ OU โ†’ SCP: ๊ณ ๋น„์šฉ GPU ์ธ์Šคํ„ด์Šค ์œ ํ˜• ์ฐจ๋‹จ
์ „์ฒด ORG โ†’ SCP: ํŠน์ • ์„œ๋น„์Šค(Redshift ๋“ฑ) ์ƒ์„ฑ ๊ธˆ์ง€
TIP
  • ํŠน์ • ๋ฆฌ์ „ ์ฐจ๋‹จ + ์กฐ์ง ์ „์ฒด โ†’ SCP
  • SCP๋Š” Allow ๋ถ€์—ฌ ์•ˆ ํ•จ. ๊ธฐ์กด Allow ๊ถŒํ•œ์˜ ํ—ˆ์šฉ ๋ฒ”์œ„๋ฅผ ์ œํ•œ

6-2. IAM Identity Center (AWS SSO)#

  • ๋‹ค์ค‘ ๊ณ„์ • ์ ‘๊ทผ์„ ์ค‘์•™์—์„œ ๋‹จ์ผ ํฌํ„ธ๋กœ ๊ด€๋ฆฌ
  • Identity Source: ๋‚ด์žฅ ๋””๋ ‰ํ† ๋ฆฌ / ์™ธ๋ถ€ SAML IdP / Active Directory
  • Permission Set = ๊ณ„์ •๋ณ„ ๊ถŒํ•œ ์ง‘ํ•ฉ ์ •์˜
  • ์žฅ์ : ๊ฐ ๊ณ„์ •์— ๋ณ„๋„ IAM User ์ƒ์„ฑ ๋ถˆํ•„์š”

6-3. ์™ธ๋ถ€ ์ ‘๊ทผ ๊ฐ์‚ฌ#

IAM Access Analyzer:

  • S3 ๋ฒ„ํ‚ท, IAM Role, KMS Key, Lambda ๋“ฑ์˜ ์™ธ๋ถ€ ์ ‘๊ทผ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ์ž๋™ ํƒ์ง€
  • ์˜๋„์น˜ ์•Š์€ ํผ๋ธ”๋ฆญ/ํฌ๋กœ์Šค ๊ณ„์ • ๊ณต๊ฐœ ์ฆ‰์‹œ ๋ฐœ๊ฒฌ
TIP

โ€œ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค ์ž๋™ ํƒ์ง€โ€ โ†’ IAM Access Analyzer


7. ๋ชจ๋‹ˆํ„ฐ๋ง & ๊ฐ์‚ฌ#

7-1. AWS CloudTrail#

  • ๋ชจ๋“  AWS API ํ˜ธ์ถœ ๊ธฐ๋ก (๋ˆ„๊ฐ€ / ์–ธ์ œ / ๋ฌด์—‡์„ / ์–ด๋””์„œ)
  • S3 ๋ฒ„ํ‚ท์— ๋กœ๊ทธ ์ €์žฅ โ†’ Log File Validation ํ™œ์„ฑํ™” (๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ)
  • IAM ๋ณด์•ˆ ๊ฐ์‚ฌ์˜ ๊ธฐ๋ณธ ๊ธฐ๋ฐ˜
TIP

โ€œ๋ˆ„๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณ€๊ฒฝํ–ˆ๋Š”๊ฐ€โ€ โ†’ CloudTrail


7-2. ๋ถˆํ•„์š”ํ•œ ์ž๊ฒฉ์ฆ๋ช… ์ •๊ธฐ ์ •๋ฆฌ#

์ •๋ฆฌ ๋Œ€์ƒ:

  • ๋ฏธ์‚ฌ์šฉ IAM User, Role, Group
  • ๋งŒ๋ฃŒ๋œ Policy ๋ฐ ๊ถŒํ•œ
  • 90์ผ ์ด์ƒ ๋ฏธ์‚ฌ์šฉ Access Key
  • 45์ผ ์ด์ƒ ๋ฏธ์‚ฌ์šฉ ํŒจ์Šค์›Œ๋“œ/Access Key (CIS ๊ธฐ์ค€)

๋„๊ตฌ:

  • IAM Credential Report: ๊ณ„์ • ์ „์ฒด ์ž๊ฒฉ์ฆ๋ช… ํ˜„ํ™ฉ CSV ๋‹ค์šด๋กœ๋“œ
  • IAM Last Accessed: ์„œ๋น„์Šค/์•ก์…˜๋ณ„ ๋งˆ์ง€๋ง‰ ์‚ฌ์šฉ ์‹œ๊ฐ„
  • AWS Config Rules: ์ž๋™ ํƒ์ง€ ๋ฐ ์•Œ๋ฆผ
TIP

โ€œ๋ฏธ์‚ฌ์šฉ ๊ถŒํ•œ ์ž๋™ ํƒ์ง€ + ์ตœ์†Œ ๊ถŒํ•œ ์ •์ฑ… ์ƒ์„ฑโ€ โ†’ IAM Access Analyzer + Last Accessed ์ •๋ณด ์กฐํ•ฉ


7-3. AWS Config#

  • ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ์ด๋ ฅ ์ถ”์ 
  • Compliance Rules:
    • iam-user-no-policies-check: User์— ์ง์ ‘ Policy ๋ถ€์ฐฉ ์—ฌ๋ถ€
    • iam-root-access-key-check: ๋ฃจํŠธ Access Key ์กด์žฌ ์—ฌ๋ถ€
    • mfa-enabled-for-iam-console-access: MFA ๋ฏธ์„ค์ • User ํƒ์ง€
  • Auto-remediation: ๋น„์ค€์ˆ˜ ์‹œ Lambda ํ†ตํ•ด ์ž๋™ ์ˆ˜์ • ๊ฐ€๋Šฅ

8. ๋ฃจํŠธ ๊ณ„์ • ๋ณดํ˜ธ#

๋ฃจํŠธ ๊ณ„์ • ๋ณด์•ˆ ์ˆ˜์น™#

ํ•ญ๋ชฉ๊ถŒ๊ณ  ์‚ฌํ•ญ
์ผ์ƒ ์‚ฌ์šฉ์ ˆ๋Œ€ ๊ธˆ์ง€ โ€” ๋ฃจํŠธ ์ „์šฉ ์ž‘์—… ์™ธ ์‚ฌ์šฉ ๊ธˆ์ง€
Access Key์ƒ์„ฑํ•˜์ง€ ๋ง ๊ฒƒ. ๊ธฐ์กด ๊ฒƒ ์ฆ‰์‹œ ์‚ญ์ œ
MFAHardware MFA ํ•„์ˆ˜ ํ™œ์„ฑํ™”
์ด๋ฉ”์ผ๋ฃจํŠธ ๊ณ„์ • ์ด๋ฉ”์ผ ๋ณด์•ˆ ๊ฐ•ํ™” (2FA ์ ์šฉ)
๋น„๋ฐ€๋ฒˆํ˜ธ๋ณต์žกํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ + ์•ˆ์ „ํ•œ ์ €์žฅ์†Œ ๋ณด๊ด€

๋ฃจํŠธ ๊ณ„์ •๋งŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…:

  • ๊ณ„์ • ํ•ด์ง€
  • ๊ฒฐ์ œ ์ •๋ณด ๋ณ€๊ฒฝ
  • Support ํ”Œ๋žœ ๋ณ€๊ฒฝ
  • IAM Identity Center ํ™œ์„ฑํ™” (์กฐ์ง ๊ด€๋ฆฌ ๊ณ„์ •)
  • S3 ๋ฒ„ํ‚ท ์ •์ฑ…์ด ๋ชจ๋“  ์š”์ฒญ์„ ์ฐจ๋‹จํ•  ๋•Œ ๋ฒ„ํ‚ท ์ •์ฑ… ์‚ญ์ œ

Centralized Root Access (Organizations)#

  • AWS Organizations ๊ด€๋ฆฌ ๊ณ„์ •์—์„œ ๋ฉค๋ฒ„ ๊ณ„์ •์˜ ๋ฃจํŠธ ์ž๊ฒฉ์ฆ๋ช… ์ค‘์•™ ์ œ์–ด
  • ๋ฉค๋ฒ„ ๊ณ„์ •์˜ ์žฅ๊ธฐ ๋ฃจํŠธ ์ž๊ฒฉ์ฆ๋ช… ์ œ๊ฑฐ ๋ฐ ๋ณต๊ตฌ ๋ฐฉ์ง€
  • ํ•„์š” ์‹œ ์ž„์‹œ ํŠน๊ถŒ ์„ธ์…˜(Break Glass)์œผ๋กœ๋งŒ ๋ฃจํŠธ ์ˆ˜์ค€ ์ž‘์—… ์ˆ˜ํ–‰
TIP
  • ๋ฃจํŠธ Access Key = ์ฆ‰์‹œ ์‚ญ์ œ
  • โ€œ๋ฃจํŠธ ๊ณ„์ • ๋ชจ๋‹ˆํ„ฐ๋งโ€ โ†’ CloudTrail + CloudWatch ์•Œ๋žŒ ์—ฐ๋™
  • AWS Config Rule: iam-root-access-key-check

9. ์‹œํ—˜ ๋‹จ๊ณจ ํŒจํ„ด ์š”์•ฝ#

์ƒํ™ฉ์ •๋‹ต ํ‚ค์›Œ๋“œ
์‚ฌ๋‚ด AD๋กœ AWS ์ ‘๊ทผIAM Identity Center + SAML 2.0 ํŽ˜๋”๋ ˆ์ด์…˜
GitHub Actions โ†’ AWS ์ ‘๊ทผOIDC + IAM Role AssumeRole
EC2์—์„œ S3 ์ ‘๊ทผIAM Role (Instance Profile) โ€” Access Key ์ ˆ๋Œ€ X
๋‹ค์ค‘ ๊ณ„์ • ๊ถŒํ•œ ์ค‘์•™ ๊ด€๋ฆฌIAM Identity Center (Permission Set)
OU ๋‹จ์œ„ ์„œ๋น„์Šค ์‚ฌ์šฉ ์ฐจ๋‹จSCP (Service Control Policy)
๊ฐœ๋ฐœ์ž ๊ถŒํ•œ ์œ„์ž„ + ์ƒ์Šน ๋ฐฉ์ง€Permission Boundary
๋ฏธ์‚ฌ์šฉ ๊ถŒํ•œ ์ž๋™ ํƒ์ง€IAM Access Analyzer + Last Accessed
์ตœ์†Œ ๊ถŒํ•œ Policy ์ž๋™ ์ƒ์„ฑIAM Access Analyzer Policy Generation (CloudTrail ๊ธฐ๋ฐ˜)
์™ธ๋ถ€ ์ ‘๊ทผ ๊ฐ€๋Šฅ ๋ฆฌ์†Œ์Šค ํƒ์ง€IAM Access Analyzer External Access Findings
MFA ์—†์ด API ์ ‘๊ทผ ์ฐจ๋‹จaws:MultiFactorAuthPresent: false Deny Policy
API ํ˜ธ์ถœ ๊ฐ์‚ฌ ๋กœ๊ทธCloudTrail
๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ์ž๋™ ํƒ์ง€AWS Config Rules
๋ฃจํŠธ ๊ณ„์ • Access Key์ฆ‰์‹œ ์‚ญ์ œ (์ƒ์„ฑ ์ž์ฒด ๊ธˆ์ง€)
DB ์ž๊ฒฉ์ฆ๋ช… ์ž๋™ ๋กœํ…Œ์ด์…˜AWS Secrets Manager
๋‹จ์ˆœ ์„ค์ •๊ฐ’ ์ €์žฅSSM Parameter Store (๋ฌด๋ฃŒ)