
안녕하세요 이웃님들 ^.^
좋은 이침 입니다.
오늘은 Amazon에서 제공하는 인증과 권한에 관련된 서비스인 IAM(Identity Access Management)서비스에
대해서 포스팅 해보려고 합니다.
IAM서비스의 구성 요소를 먼저 간략히 소개를 해보면 아래와 같이 4가지로 분류를 해 볼수 있습니다.
각각의 기능에 대해서 살펴 보면
- IAM User(사용자) : AWS에서 생성하는 엔터티입니다. IAM user는 IAM user를 사용하여 AWS와 상호 작용하는 사용자 또는 워크로드를(Application 또는 Resource) 나타냅니다. IAM user는 이름과 자격 증명으로 구성이 됩니다.
- IAM Group(그룹) : Group은 user들을 묶을 수 있는 엔티티 입니다.
- IAM Role(역활) : IAM user나 Group에 임시로 수행할 권한을 부여하는 엔티티 입니다.
- IAM Policy(정책) :IAM user나 group에 어떤 작업을 할수 있는지 권한을 정의하는 엔티티 입니다.
이럼 이제 실제로 한번 만들어 보면서 그 개념을 습득 하시기 바랍니다.
우선 AWS Console의 검색 창에서 IAM을 입력하고 클릭을 합니다.

위의 화면을 보면 현재 3개의 IAM Group과 3명의 user 그리고 18개의 role이 있습니다.

화면 왼쪽의 user를 클릭 하고 user-1을 클릭을 합니다.

화면에서 보이듯이 현재 user-1에는 어떤 권한도 할당이 되어 있지 않습니다. 그룹 탭을 클릭 합니다.

그럼 이제 Group을 살펴 보겠습니다. 화면 왼쪽에서 Group을 클릭 합니다. user-1은 어느 그룹에도 속해 있지 않습니다. 그리고 아래 그림처럼 보안 자격 증명 텝을 클릭 합니다.

user-1에 콘솔 암호가 할당이 되어 있습니다. 그럼 이제 Group을 살펴 보겠습니다.
화면 왼쪽의 사용자 그룹을 클릭을 하면 아래 그림과 같이 3가지 그룹이 생성이 되어 있습니다.

EC2-support그룹을 클릭을 합니다.

ec2-support그룹에는 AmazonEC2ReadOnlyAccess 정책이 연결되어 있습니다.
이 정책은 EC2 Instance에 읽기 권한만 할당을 해주는 정책 입니다. 정책이 업데이트되면 정책에 대한 변경 사항이 정책에 연결된 모든 사용자 및 그룹에 즉시 적용됩니다.
위의 정책을 클릭을 하면 해당 정책에 정의된 내용의 요약을 아래와 같이 표시해 줍니다.

위의 그림에서와 같이 json을 클릭을 합니다. 클릭을 하면 아래 화면과 같이 요약 화면에서 정의된 내역을을 JSON 코드로 살펴 볼수 있습니다.

위의 코드에서 보면 아래와 같이 3개의 주요한 부분으로 구분을 할수 있습니다.
- Effect는 권한을허용할지거부할지를 설정 합니다.
- Action은 AWS 서비스에 수행할 수 있는 API 호출을 지정합니다(예: cloudwatch:ListMetrics).
- Resource는 정책 규칙이 적용되는 엔터티의 범위를 정의합니다(예: 특정 Amazon S3 버킷 또는 Amazon EC2 인스턴스 또는 모든 리소스를 나타내는 *)
그럼 이제 왼쪽 탐색 창에서 User Groups를 클릭을 하고 s3-support 그룹을 클릭을 합니다.

권한 탭을 클릭을 하고 어떤 정책이 연결되어 있는지 확인 합니다.
이 그룹에는 AmazonS3ReadOnlyAccess 정책이 연결되어 있습니다. 이 정책은 S3(Storage)에 읽기 권한을 가지고 접속 가능하게 해주는 정책이 연결이 되어 있습니다. 그럼 코드로 살펴 보려면. 위의 화면에서 JSON을 클릭 합니다.

그럼 이제 마지막 그룹 ec2-admin에는 어떤 정책이 할당되어 있는지 확인해 보겠습니다.

ec2-admin 그룹은 다른 두 그룹과 약간 다릅니다. Managed Policy 대신 하나의 사용자 또는 그룹에만 할당되는 정책인 Inline Policy가 있습니다.
인라인 정책은 일반적으로 일회성 상황에 대한 권한을 적용하는 데 사용되는 정책 입니다.
이제 화면 아래위 취소 버튼을 클릭하고 이전 화면으로 갑니다.
그럼 이제 사용자에게 아래의 권한을 부여하는 작업을 진행해 보겠습니다.
user-1
|
S3-Support
|
Amazon S3에 대한 읽기 전용 액세스
|
user-2
|
EC2-Support
|
Amazon EC2에 대한 읽기 전용 액세스
|
user-3
|
EC2-Admin
|
Amazon EC2 인스턴스 보기, 시작 및 중지
|
.그럼 우선 사용자를 그룹에 포함을 시켜 보겠습니다.

화면 왼족의 사용자 그룹을 클릭하고 사용자 텝에서 사용자 추가 버튼을 클릭 합니다.

그럼 생성된 사용자들이 위의 화면과 같이 표시가 되는데 여기서 user-1을 클릭 하고 사용자 추가 버튼을 클릭 합니다.

그럼 이제 user-1이 s3-support 그룹에 추가된 것을 확인 할수 있습니다. 그럼 이제 위의 표에서와 같이 각 사용자를 각 그룹에 위와 같은 절차로 추가를 합니다.
모두 추가하고 나서 왼쪽의 사용자 그룹을 클릭을 해보면 각 그룹별로 사용자가 추가 되어 있는것을 확인할 수 있습니다.

그럼 아래 그림과 같이 화면 왼쪽의 데쉬보드 메뉴를 클릭 합니다. 클릭을 하면 화면 오른쪽과 같이 iam사용자가 로그인할 수 있는 url이 있습니다. 이 url을 메모장에 복사해 둡니다.

이제 크롬브라우저를 열고 아래 화면과 같이 새 시크릿 창을 클릭을 하고,, 앞에서 복사해 두었던 url을 주소창에 붙여 넣습니다.

그럼 이제 로그인 화면이 나오는데요. 여기서 앞서 사용한 user-1을 이용해 user-1이 소속된 그룹에 할당된 정책과 같이 동작을 하는지 확인을 해보겠습니다.

그럼 AWS 콘솔 화면이 나오고, 여기서 S3를 검색 후 클릭을 합니다. 그럼 S3 버킷 정보를 아래 화면과 같이 볼수 있습니다.

USER-1은 그룹에 할당한 것과 같이 s3-suport그룹에 속해 있고. AmazonS3ReadOnlyAccess 정책이 할당되어 있습니다. 즉. S3의 리소스를 볼수 있는 권한만 있고 EC2에 대한 권한은 없습니다.
그럼 이제 AWS 콘솔창에서 ec2를 검색하고 클릭을 해봅니다.

위의 화면에서와 같이 화면 왼쪽의 인스턴스 버튼을 클릭하면 인스턴스가 조회가 되지 않는걸 확인할 수 있습니다.
그럼 이제 다시 로그인 화면으로 돌아가 user-2를 이용해 로그인을 하고 ec2를 검색해 보겠습니다.

위의 그림과 같이 로그아웃 버튼을 클릭해 로그 아웃을 하고, 앞서 복사해 두었던 로그인 url을 주소창에 붙여 넣고 아래와 같이 user-2로 로그인을 합니다.

로그인 후에 AWS 콘솔창에서 EC2를 검색핸 후 화면 왼쪽의 인스턴스를 클릭 하면 아래와 같이 EC2인스턴스를 볼수 있습니다.

그럼 이제 AWS 콘솔창에서 S3를 검색후 클릭해 보겠습니다.
S3를 클릭하고 버킷을 클릭하면 아래 화면과 같이 권한이 없다는 메세지가 출력이 됩니다.
USER-2는 S3를 볼수 있는 권한이 없기 때문에 표시된 것입니다.

그럼 이제 USER와 GROUP그리고 Policy에 대해서는 이해가 되었으리라고 생각이 됩니다.
그럼 다음 포스팅에 역활(role)에 대해서 포스팅을 하겠습니다.
행복한 하루 되시길~~~~
'아마존 클라우드' 카테고리의 다른 글
[클라우드] VPC Peering 사용하기 (101) | 2023.09.10 |
---|---|
[클라우드] Amazon VPC 사용하기 (137) | 2023.08.12 |
[클라우드] Amazon CloudtraiL CloudWatch 사용법 (91) | 2023.08.06 |
[클라우드] Amazon KMS(Key management System) 사용 방법 (87) | 2023.08.05 |
[클라우드] Amazon Lamda에 Application배포하기 (180) | 2023.07.29 |