IAM 역할 및 정책
JSON 정책 문서를 작성하여 역할에 연결하고, 자격 증명 기반 정책과 리소스 기반 정책의 차이를 이해합니다.
IAM 역할 및 정책은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
IAM policy: 권한 언어
IAM policy는 무엇이 허용되는지 설명하는 JSON 문서입니다. 각 문에는 Effect(Allow 또는 Deny), Action 및 Resource가 있습니다. 코드에서 한 가지 예를 보여 줍니다.
{
'Version': '2012-10-17',
'Statement': [
{
'Effect': 'Allow',
'Action': [
's3:GetObject',
's3:PutObject'
],
'Resource': 'arn:aws:s3:::my-bucket/*'
}
]
}ID 기반 policy와 리소스 기반 policy
ID 기반 policy는 사용자나 역할에 연결되어 해당 주체가 수행할 수 있는 작업을 정의합니다. 리소스 기반 policy는 리소스 자체에 연결되어 누가 이를 사용할 수 있는지 정의합니다.
# Example S3 bucket policy (resource-based)
{
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Principal': {
'AWS': 'arn:aws:iam::123456789012:role/MyAppRole'
},
'Action': 's3:GetObject',
'Resource': 'arn:aws:s3:::my-bucket/*'
}]
}IAM 역할: 임시 ID
IAM 역할은 잠시 동안 Assume하는 ID입니다. 만료되는 임시 자격 증명을 제공하므로 EC2, Lambda 및 기타 서비스에 적합합니다.
# Attach an IAM role to an EC2 instance (instance profile)
aws ec2 associate-iam-instance-profile \
--instance-id i-0abcdef1234567890 \
--iam-instance-profile Name=MyEC2Role신뢰 policy: 역할을 Assume할 수 있는 주체
모든 역할에는 누가 역할을 Assume할 수 있는지 정의하는 신뢰 policy와, Assume한 후 수행할 수 있는 작업을 정의하는 권한 policy가 있습니다. 신뢰 policy가 없으면 액세스도 없습니다.
# Trust policy for a Lambda execution role
{
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Principal': {
'Service': 'lambda.amazonaws.com'
},
'Action': 'sts:AssumeRole'
}]
}AWS 서비스 역할: EC2 및 Lambda
EC2가 AWS를 호출해야 한다면 역할을 감싸는 인스턴스 프로파일을 제공하세요. 자격 증명은 자동으로 교체되므로 하드코딩된 키가 필요 없습니다. Lambda도 같은 방식으로 작동합니다.
# Retrieve role credentials from EC2 metadata (IMDSv2)
TOKEN=$(curl -X PUT 'http://169.254.169.254/latest/api/token' \
-H 'X-aws-ec2-metadata-token-ttl-seconds: 21600')
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/iam/security-credentials/MyEC2Role교차 계정 역할 Assume
교차 계정 역할을 사용하면 한 계정의 사용자가 다른 계정의 역할을 Assume하여 해당 계정의 리소스에 액세스할 수 있습니다. 여러 계정을 사용하는 환경에서 모든 곳에 중복 사용자를 만들지 않는 방법입니다.
# Assume a cross-account role from Account A
aws sts assume-role \
--role-arn arn:aws:iam::999999999999:role/CrossAccountRole \
--role-session-name my-sessionpolicy 조건: 세분화된 제어
Condition은 MFA를 요구하거나 특정 IP 범위 또는 리전으로 액세스를 제한하는 것처럼 policy에 추가 규칙을 더합니다. 이를 통해 권한을 훨씬 더 엄격하게 제한할 수 있습니다.
# Policy that requires MFA for sensitive actions
{
'Effect': 'Deny',
'Action': ['iam:*', 'cloudtrail:*'],
'Resource': '*',
'Condition': {
'BoolIfExists': {
'aws:MultiFactorAuthPresent': 'false'
}
}
}권한 경계
권한 경계는 policy가 더 많은 권한을 부여하더라도 ID가 가질 수 있는 최대 권한을 제한합니다. 개발자가 직접 역할을 만들 수 있게 할 때 사용하는 안전장치입니다.
# Attach a permissions boundary to a user
aws iam put-user-permissions-boundary \
--user-name alice \
--permissions-boundary arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccesspolicy 평가 논리
AWS가 요청을 확인할 때 가장 우선되는 규칙이 있습니다. 명시적 Deny는 항상 요청을 차단합니다. 그 후에는 policy의 모든 계층이 액세스 허용에 동의해야 합니다.
IAM policy 시뮬레이터
IAM policy 시뮬레이터는 실제로 작업을 실행하지 않고도 ID가 특정 작업을 할 수 있는지 검사합니다. 운영 환경에 적용하기 전에 권한 문제를 디버깅하는 데 유용합니다.
# Simulate an IAM policy evaluation via CLI
aws iam simulate-principal-policy \
--policy-source-arn arn:aws:iam::123456789012:user/alice \
--action-names s3:PutObject \
--resource-arns arn:aws:s3:::my-bucket/*페더레이션 액세스용 역할
Okta, Google 또는 Active Directory의 외부 사용자는 페더레이션(SAML 또는 OIDC)을 통해 역할을 Assume할 수 있습니다. IAM 사용자 없이도 수백만 명에게 액세스를 부여할 수 있습니다.
빠른 확인
이 단원에서 다룬 AWS Solutions Architect (SAA-C03) 개념을 얼마나 이해했는지 확인해 보세요.
단원 요약
간단히 정리하면, policy는 Allow와 Deny를 위한 JSON 규칙이고, 역할은 임시 자격 증명을 제공하며, 조건은 세분화된 제어를 추가합니다. 다음: 최소 권한.
자주 묻는 질문
“IAM 역할 및 정책” 강의는 무료인가요?
네 — “IAM 역할 및 정책” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“IAM 역할 및 정책”에서 뭘 배우나요?
JSON 정책 문서를 작성하여 역할에 연결하고, 자격 증명 기반 정책과 리소스 기반 정책의 차이를 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“IAM 역할 및 정책” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- IAM 사용자 및 그룹
- IAM 역할 및 정책
- 최소 권한 원칙
- IAM 모범 사례 및 MFA