๐ 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. Identity ๊ด๋ฆฌ ์์น
- 2. Credential ๋ณด์ ๊ด๋ฆฌ
- 3. ์ต์ ๊ถํ ์์น (Least Privilege)
- 4. MFA (๋ค์ค ์ธ์ฆ)
- 5. IAM Policy ๊ตฌ์ฑ ์ ๋ต
- 6. ํฌ๋ก์ค ๊ณ์ & ์ธ๋ถ ์ ๊ทผ ์ ์ด
- 7. ๋ชจ๋ํฐ๋ง & ๊ฐ์ฌ
- 8. ๋ฃจํธ ๊ณ์ ๋ณดํธ
- 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 (๋ฌด๋ฃ)TIPRDS ํจ์ค์๋ ์๋ ๋กํ ์ด์ โ Secrets Manager
3. ์ต์ ๊ถํ ์์น (Least Privilege)
์์น ์ ์
์์ ์ํ์ ํ์ํ ์ต์ํ์ ๊ถํ๋ง ๋ถ์ฌํ๋ผ. ์ด๊ณผ ๊ถํ์ ์๋์น ์์ ๋์ ๋ฐ ๋ณด์ ์ฌ๊ณ ์ ์์ธ.
๊ตฌํ ๋จ๊ณ
1๋จ๊ณ: AWS Managed Policy๋ก ์์ (๋น ๋ฅธ ์ค์ ) โ2๋จ๊ณ: ์ค์ ์ฌ์ฉ ํจํด ํ์
(CloudTrail ๋ก๊ทธ ๋ถ์) โ3๋จ๊ณ: IAM Access Analyzer๋ก ์ต์ ๊ถํ Policy ์๋ ์์ฑ โ4๋จ๊ณ: Customer Managed Policy๋ก ์ธ๋ฐํ ๊ถํ ์ ์ฉIAM Access Analyzer ํ์ฉ
| ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|
| Policy Generation | CloudTrail ๋ก๊ทธ ๊ธฐ๋ฐ์ผ๋ก ์ค์ ์ฌ์ฉ ๊ถํ๋ง ์ถ์ถํ Policy ์๋ ์์ฑ |
| Policy Validation | 100๊ฐ ์ด์์ ์ ์ฑ ๊ฒ์ฌ. ๊ณผ๋ํ๊ฒ ํ์ฉ์ ์ธ ๊ถํ์ ๋ณด์ ๊ฒฝ๊ณ |
| 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 User | MFA ๊ฐ๋ ฅ ๊ถ๊ณ |
| 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/๊ณ์ ๋จ์ guardrail3. 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-based | User, Group, Role | ๊ฐ์ฅ ์ผ๋ฐ์ . ์ธํ๋ผ ๊ถํ ์ ์ |
| Resource-based | S3, SQS, KMS ๋ฑ ๋ฆฌ์์ค | ํฌ๋ก์ค ๊ณ์ ์ ๊ทผ ํ์ฉ ๊ฐ๋ฅ |
| Permission Boundary | User, Role | ์ต๋ ํ์ฉ ๊ถํ ์ํ ์ค์ |
| SCP | OU, ๊ณ์ (Organizations) | Guardrail. Allow ๋ถ์ฌ ์ ํจ. ํ์ฉ ๋ฒ์๋ง ์ ํ |
| Session Policy | AssumeRole ํธ์ถ ์ | ์์ ์ธ์ ์ ๊ถํ ์ถ๊ฐ ์ ํ |
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 | ์์ฑํ์ง ๋ง ๊ฒ. ๊ธฐ์กด ๊ฒ ์ฆ์ ์ญ์ |
| MFA | Hardware 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 (๋ฌด๋ฃ) |