최소 권한 원칙
실제 시나리오에 최소 권한 원칙을 적용하고 AWS 관리형 정책과 인라인 정책을 상황에 맞게 사용합니다.
최소 권한 원칙은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
최소 권한이란?
최소 권한은 모든 ID에 실제로 필요한 권한만 부여하고 그 이상은 부여하지 않는다는 의미입니다. 자격 증명이 유출되더라도 피해 규모를 작게 유지할 수 있습니다. 🛡️
기본 거부로 시작하기
AWS에서는 최소 권한을 쉽게 적용할 수 있습니다. 새 사용자나 역할은 권한이 전혀 없는 상태로 시작합니다. 불필요한 권한을 제거하는 대신 필요한 권한만 정확히 추가합니다.
과도한 권한 부여: 흔한 실수
흔한 실수는 빠르다는 이유로 AdministratorAccess를 부여하는 것입니다. 그러면 하나의 버그로 데이터 전체가 삭제될 수 있습니다. 대신 특정 작업과 리소스로 범위를 제한하세요.
# AVOID: wildcard permissions
{
'Effect': 'Allow',
'Action': '*',
'Resource': '*'
}
# PREFER: scoped permissions
{
'Effect': 'Allow',
'Action': ['dynamodb:GetItem', 'dynamodb:Query'],
'Resource': 'arn:aws:dynamodb:us-east-1:123456789:table/Orders'
}AWS 관리형 policy와 고객 관리형 policy
AWS 관리형 policy는 편리하지만 범위가 지나치게 넓은 경우가 많습니다. 고객 관리형 policy를 사용하면 앱이 실제로 사용하는 버킷이나 테이블만 정확히 지정할 수 있습니다.
# Create a scoped customer-managed policy
aws iam create-policy \
--policy-name LambdaOrdersReader \
--policy-document file://orders-reader-policy.jsonIAM Access Analyzer
IAM Access Analyzer는 계정 외부에 노출된 리소스를 감시합니다. ID가 실제로 사용한 작업을 분석하여 엄격한 policy를 작성해 줄 수도 있습니다.
# Enable IAM Access Analyzer for the account
aws accessanalyzer create-analyzer \
--analyzer-name MyAccountAnalyzer \
--type ACCOUNT조건으로 권한 강화하기
작업을 허용해야 하는 경우에도 조건으로 위험을 줄일 수 있습니다. MFA를 요구하거나, 회사 IP로 제한하거나, 사용자가 자신의 폴더에만 액세스하도록 제한하세요. ✨
# Allow users to manage only their own folder in S3
{
'Effect': 'Allow',
'Action': ['s3:GetObject', 's3:PutObject'],
'Resource': 'arn:aws:s3:::shared-bucket/${aws:username}/*'
}가드레일로서의 권한 경계
팀이 자체 IAM을 관리하도록 허용할 때 권한 경계는 역할이 수행할 수 있는 작업의 상한을 정합니다. 팀은 자유롭게 구축할 수 있지만, 여러분이 설정한 한계를 넘을 수는 없습니다.
세션 policy를 사용한 시간 제한 액세스
역할을 Assume할 때 해당 세션에 한해 권한을 더욱 제한하는 세션 policy를 전달할 수 있습니다. pipeline에 꼭 필요한 만큼의 액세스만 부여할 때 적합합니다.
# Assume a role with a restrictive session policy
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/DeployRole \
--role-session-name deploy-session \
--policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"lambda:UpdateFunctionCode","Resource":"arn:aws:lambda:us-east-1:123456789012:function:MyApp"}]}'태그 기반 액세스 제어(ABAC)
ABAC는 모든 리소스를 나열하는 대신 태그가 일치하는지 확인하여 액세스를 부여합니다. 예를 들어 역할이 자신의 팀 태그가 지정된 EC2 인스턴스만 중지하도록 허용할 수 있습니다.
{
'Effect': 'Allow',
'Action': 'ec2:StopInstances',
'Resource': '*',
'Condition': {
'StringEquals': {
'ec2:ResourceTag/Team': '${aws:PrincipalTag/Team}'
}
}
}사용하지 않는 권한 검토
AWS는 각 권한이 마지막으로 사용된 시점을 추적합니다. 마지막 액세스 데이터는 90일 이상 사용되지 않은 권한을 보여 주며, 이는 제거하기에 명확한 후보입니다.
# Get service last-accessed data for a role
aws iam generate-service-last-accessed-details \
--arn arn:aws:iam::123456789012:role/MyLambdaRole
# Retrieve the report (use the JobId from above)
aws iam get-service-last-accessed-details --job-id <JobId>데이터 액세스를 위한 최소 권한
데이터에도 최소 권한을 적용하세요. 사용자를 자신의 S3 폴더로 제한하고, DynamoDB는 사용자 ID로 범위를 제한하며, 각 앱에 자체 데이터베이스 로그인을 제공하세요.
빠른 확인
이 단원에서 다룬 AWS Solutions Architect (SAA-C03) 개념을 얼마나 이해했는지 확인해 보세요.
단원 요약
간단히 정리하면, 최소 권한은 최소한의 권한만 부여하는 것이며, Access Analyzer는 사용하지 않는 권한을 찾고, 조건과 경계는 권한을 엄격하게 유지합니다. 다음: IAM 모범 사례와 MFA.
자주 묻는 질문
“최소 권한 원칙” 강의는 무료인가요?
네 — “최소 권한 원칙” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.
“최소 권한 원칙”에서 뭘 배우나요?
실제 시나리오에 최소 권한 원칙을 적용하고 AWS 관리형 정책과 인라인 정책을 상황에 맞게 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“최소 권한 원칙” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.