0Pricing
Cloud & IT Cert Prep · 강의

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-session

policy 조건: 세분화된 제어

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/AmazonS3ReadOnlyAccess

policy 평가 논리

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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. IAM 사용자 및 그룹
  2. IAM 역할 및 정책
  3. 최소 권한 원칙
  4. IAM 모범 사례 및 MFA
← Cloud & IT Cert Prep(으)로 돌아가기