AWS Identity and Access Management (IAM)

kauze98·2025년 4월 24일

AWS 실습

목록 보기
3/16

AWS Identity and Access Management(IAM) 는 Amazon Web Services(AWS) 고객이 AWS에서 사용자와 사용자 권한을 관리할 수 있게 해주는 웹 서비스입니다. IAM을 사용하면 사용자, 액세스 키 등의 보안 자격 증명, 사용자가 액세스할 수 있는 AWS 리소스 제어 권한을 중앙에서 관리할 수 있습니다.

이번 실습을 통해서 다음 내용을 다루려고합니다.

  • 사전 생성된 IAM 사용자 및 그룹 살펴보기
  • 사전 생성된 그룹에 적용되는 IAM 정책 점검하기
  • 실제 시나리오를 따라 특정 기능이 활성화된 그룹에 사용자 추가하기
  • IAM 로그인 URL 위치 찾기 및 사용하기
  • 서비스 액세스 관련 정책의 결과 시험하기

1. 사용자 및 그룹 살펴보기

우선 AWS Management Console 상단의 검색 창에서 IAM을 검색하여 선택을 하였습니다.
그리고 액세스 관리 밑에 있는 user를 클릭하여 IAM 내에 사전 생성되어 있는 사용자 및 그룹을 살펴보았습니다.

 

user-1을 클릭하여, 그룹 탭을 클릭하여 user-1은 그룹의 구성원이 아닌 것을 확인 하였습니다.

 

그리고 보안 자격 증명 탭을 눌러 user-1에게 Console password가 할당되어 있는 것을 확인하였습니다.

 

사용자 그룹에 들어가

  • EC2-Admin
  • EC2-Support
  • S3-Support

총 3개의 그룹이 생성된 것을 확인합니다.

 

EC2-Support안에 있는 권한 밑에 AmazonEC2ReadOnlyAccess라는 관리형 정택이 연결이 되어 있는 것을 확인 할 수 있습니다.

✅ 관리형 정책(Managed Policy)이란?
관리형 정책은 AWS에서 사전에 작성해 제공하거나, 조직 내 관리자가 직접 생성한 IAM 정책을 말합니다.
이 정책은 IAM 사용자, 그룹, 역할에 쉽게 할당할 수 있으며, 다음과 같은 특징이 있습니다:

중앙에서 관리되며, 여러 사용자나 역할에 공통 권한을 부여할 때 유용합니다.

정책을 한 번만 수정하면, 해당 정책이 적용된 모든 대상에 즉시 반영됩니다.

AWS가 제공하는 정책은 AmazonS3FullAccess, AdministratorAccess처럼 일반적인 사용 사례에 맞게 구성되어 있습니다.

Permissions 탭에서 AmazonEC2ReadOnlyAccess를 클릭하면 새 브라우저 창이 열립니다. 이제 { } JSON을 클리하면 EC2, Elastic Load Balancing, CloudWatch 및 Auto Scaling에 대한 정보를 나열하고 설명할 수 있는 권한을 부여된 것을 확인 할 수 있습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "ec2:GetSecurityGroupsForVpc"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "elasticloadbalancing:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "autoscaling:Describe*",
            "Resource": "*"
        }
    ]
}

IAM 정책은 사용자가 AWS 리소스에 대해 수행할 수 있는 작업을 제어하기 위해 사용됩니다. 정책은 JSON 형식으로 작성되며, 그 핵심 구성 요소는 다음과 같습니다:

🔹 Effect
Effect는 해당 작업을 허용할지(Allow) 또는 명시적으로 거부할지(Deny) 를 결정합니다.

예: "Effect": "Allow"는 허용, "Effect": "Deny"는 거부

🔹 Action
Action은 사용자가 어떤 API 작업을 수행할 수 있는지를 지정합니다.

형식은 보통 서비스이름:작업명 으로 작성되며, 예시는 다음과 같습니다:

s3:PutObject – S3 버킷에 객체 업로드

cloudwatch:ListMetrics – CloudWatch 메트릭 목록 조회

🔹 Resource
Resource는 정책이 적용되는 대상 리소스를 지정합니다.

특정 리소스를 지정할 수도 있고, *를 사용해 모든 리소스를 의미할 수도 있습니다.

예: "arn:aws:s3:::my-bucket/*" – 특정 S3 버킷의 모든 객체

"*" – 모든 리소스에 대해 적용

 

S3-Support 그룹에는 AmazonS3ReadOnlyAccess 정책이 배속되어 있습니다.


이 정책은 Amazon S3의 리소스에 대해 Get과 List의 권한 허가를 다루고 있습니다.

 


✅ 인라인 정책이 적용된 IAM 그룹에 대한 설명
이 IAM 그룹은 다른 일반적인 그룹들과는 약간 다릅니다.
보통은 관리형 정책을 IAM 사용자나 그룹에 할당하지만, 이 그룹에는 인라인 정책이 사용되고 있습니다.

🔹 인라인 정책이란?

  • 인라인 정책은 해당 그룹 또는 사용자 하나에만 종속적으로 연결되는 정책입니다.

  • 별도로 재사용할 수 없으며, 정해진 대상에만 직접 붙는 형태로 사용됩니다.

  • 일반적으로 특정 상황에서 임시 또는 단발성 권한을 부여할 때 활용됩니다.

🔍 정책 확인 절차

  1. IAM 콘솔에서 해당 그룹의 Permissions 탭으로 이동합니다.

  2. EC2-Admin-Policy라는 이름의 인라인 정책을 클릭합니다.

  3. JSON 탭을 선택하면 실제 정책의 구조를 확인할 수 있습니다.

 

이 인라인 정책은 다음과 같은 권한을 부여하고 있습니다:

  • Amazon EC2 리소스에 대한 조회 권한 (예: 인스턴스 설명 등)

  • EC2 인스턴스를 시작하고 중지할 수 있는 실행 권한

즉, 이 정책은 해당 그룹에 EC2 리소스를 조회 + 제어할 수 있는 운영 권한을 직접 부여하는 목적입니다.

 


###. 그룹에 사용자 추가하기
나머지 실습에서는 앞서 생성한 사용자와 그룹을 활용하여 비즈니스 시나리오에 맞는 권한 구성을 실습하게 됩니다.

회사는 현재 Amazon Web Services(AWS) 사용을 본격적으로 확대하고 있으며, 특히 Amazon EC2 인스턴스와 Amazon S3 스토리지의 사용량이 많습니다.
이에 따라, 여러분은 신규 입사자들이 각자의 직무에 맞는 권한만을 갖도록 IAM을 통해 세분화된 액세스 제어를 구성해야 합니다.

즉, 역할 기반 액세스 제어(RBAC)를 바탕으로 적절한 사용자-그룹 매핑과 권한 할당을 실습하려고 합니다.

 

ex) :
최근 Amazon S3 관련 지원 업무를 담당할 직원으로 user-1이 채용되었습니다.
해당 직원을 S3-Support 그룹에 추가함으로써, 그룹에 배속된 AmazonS3ReadOnlyAccess 정책을 통해 S3 리소스에 대한 읽기 전용 권한을 자동으로 상속받게 됩니다.

이 단계는 역할 기반 액세스 제어(RBAC) 원칙에 따라 사용자를 적절한 그룹에 배속하고, 해당 그룹이 가진 정책을 통해 필요한 최소한의 권한을 부여하는 실습을 하고자합니다.

(user-1 그룹 추가)

이제 user-1 사용자를 S3-Support 그룹에 추가하여, 그룹에 연결된 정책을 통해 Amazon S3 리소스에 대한 읽기 전용 권한을 상속받도록 설정합니다.

이를 위해 먼저 IAM 콘솔의 왼쪽 탐색 창에서 User Groups를 클릭한 후, 목록에서 S3-Support 그룹을 선택합니다.
그룹 상세 페이지에서 Users 탭으로 이동한 뒤, Add Users 버튼을 클릭합니다.

Add Users to Group 창이 열리면, 목록에서 user-1을 선택하고, 화면 하단의 Add Users 버튼을 클릭합니다.
이제 Users 탭에서 user-1이 해당 그룹에 정상적으로 추가된 것을 확인할 수 있습니다.

이 과정을 통해 user-1은 그룹에 연결된 AmazonS3ReadOnlyAccess 정책을 상속받아 S3 리소스에 대한 읽기 권한을 부여받게 됩니다.


위와 비슷한 과정을 통해 user-2를 EC2-Support 그룹에 추가합니다.


이 과정도 위와 같은 비슷한 과정을 통해 user-3을 EC2-Admin 그룹에 추가합니다.

User 열레 각 그룹의 사용자 수에 대해 1이 표시 된 것을 확인 할 수 있습니다.

 


3. 로그인 및 사용자 테스트

IAM 사용자의 권한을 테스트해보려고 합니다.
Dashboard를 클릭하여 IAM users Sign-in URL이 표시가 됩니다. 크롬에서 시크릿모드로 들어가 URL를 복사하여 주소창에 입력을 하여,
IAM user name
Password
를 입력하면 IAM 계정으로 들어갑니다.



이와 같이 해당 사용자에게 Amazon EC2를 사용할 아무런 권한도 할당되지 않았기 때문에 위에 같은 사진에 오류가 발생하였습니다.
그렇기 떄문에 인스턴스가 권한이 할당된 user-2로 로그인하여 EC2 > 인스턴스로 들어가 확인해보겠습니다.

이와 같이 할당된 이미지를 볼 수 있습니다.


하지만 user-2는 읽기 전용 권한이 있으므로 이제 Amazon EC2 인스턴스를 볼 수 있습니다. 그러나 Amazon EC2 리소스를 변경할 수는 없습니다

다음으로 user-3으로 로그인하여 EC2 > 인스턴스로 들어가 확인해보겠습니다.

이 유저는 EC2 관리자로서 Amazon EC2 인스턴스를 중지할 수 있는 권한이 있습니다.


이렇게 중지가 되었음을 확인 할 수 있습니다.

지금까찌 각 역할에 할당된 권한을 살펴보았습니다. 이를 통해 실무에 어떻게 사용하는지 조금이지만 알게되어 유익한 시간이 되었습니다.


profile

0개의 댓글