1. IAM( Identity and Access Managemnet )
IAM이란 AWS의 리소스에 대한 접근제어와 권한을 가지도록 계정 또는 그룹을 생성하는 서비스입니다.
어떤 IAM 계정은 EC2 서비스만 접근할 수 있도록 권한을 부여하고, 다른 IAM 계정은 S3 서비스만 접근할 수 있도록 권한을 나눌 수 있습니다.
IAM 계정이 없다면 AWS 계정 자체가 모든 서비스에 대한 권한이 있기 때문에 보안상 취약합니다.
따라서 IAM 계정을 생성해서 각 IAM 계정에 필요한 권한만 갖도록 설정할 수 있습니다.
또한 IAM 계정은 access key를 개별적으로 관리할 수 있기 때문에 보안성이 높아집니다.
예를 들어, AWS 계정의 access key로 EC2를 생성했을 때 만약 이 key가 해킹 당한다면 해커는 저의 계정으로 모든 접근이 가능합니다.
그런데 IAM 계정의 access key로 EC2를 생성하면 다른 권한을 수행할 수 없기 때문에 보안성이 높아집니다.
2. IAM 생성하기 - 그룹 생성하기
1)
EC2 서비스의 권한을 갖는 IAM 그룹을 먼저 생성해보도록 하겠습니다.
IAM 그룹은 같은 서비스에 접근 권한이 있는 IAM 계정들을 그룹화 해놓은 것을 말합니다.
2)
"Create New Group"을 클릭하여, 위와 같이 Group name을 작성해주세요.
3)
이어서 정책을 설정하는 화면이 나옵니다.
이 그룹에는 EC2의 접근에 대한 권한을 설정하는 것이 목적이므로 검색 창에 위와 같이 입력해주세요.
그리고 체크박스를 클릭하여 "Next Step"버튼을 눌러주세요.
이어서 "Create Group" 버튼을 눌러주세요.
그러면 EC2에 대한 fullaccess가 가능한 그룹이 생성되었습니다.
3.. IAM 생성하기 - 계정 생성하기
위에서 생성한 그룹에 계정을 추가하도록 하겠습니다.
EC2 인스턴스는 웹 서버로 활용되므로 S3에 접근할 일이 많습니다.
따라서 S3에 접근 권한을 갖는 계정을 생성한 후 EC2 권한을 가진 그룹에 포함 시키도록 하겠습니다.
4)
5)
user name에 유저명을 작성해주시고, 접근 유형을 체크합니다.
Programmatic access를 체크하면 AWS API에 접근할 수 있는 access key와 secret key를 얻을 수 있습니다.
AWS Management Console access는 AWS 계정 관리 콘솔에 접근하도록 권한을 부여합니다.
6)
방금 전에 생성했던 group에 현재 계정을 추가 시킵니다.
"Next" 버튼을 누르고 이어서 "create" 버튼을 눌러 계정을 생성하겠습니다.
7)
생성된 계정의 access key와 secret key를 다운로드하거나 "show"버튼을 눌러서 안전하게 보관해주세요.
이 두 key는 절대로 외부에 노출되서는 안됩니다 !
여기까지 계정을 생성해서 group에 추가했습니다.
이제 이 계정에서 S3에 접근 할 수 있도록 S3 접근 권한을 부여하도록 하겠습니다.
user 목록에서 방금 생성한 계정을 클릭해주세요.
8)
9)
10)
AWS Service에서 S3를 선택해주세요.
Action은 S3의 모든 기능을 수행하도록 선택하겠습니다.
ARN은 arn:aws:s3:::my_bucket 과 같이 입력해주세요.
( ARN에 대한 자세한 문서는 여기를 참고해주세요 ! )
그리고 "Add Statement" 버튼을 누르고 이어서 "next" 버튼을 눌러주세요.
정책을 확인 후 "Aplly Policy" 버튼을 눌러주세요.
그러면 IAM User 정보에 S3에 대한 정책이 설정된 것을 보실 수 있습니다.
4. 역할 부여하기
이제 IAM user에 역할을 부여하도록 하겠습니다.
이 User 계정에는 EC2 인스턴스에서 S3에 접근할 수 있는 역할이 부여됩니다.
11)
12)
13)
빨간색으로 체크된 부분을 클릭한 후 "next"버튼을 눌러주세요.
S3에 접근할 수 있는 역할을 부여할 것이므로 검색어로 위와 같이 입력하도록 하겠습니다.
이어서 "next" 버튼을 눌러주세요.
다음 화면에서 Role name과 Role 설명을 작성해주고 "create role" 버튼을 눌러 role을 생성해주세요.
5. 역할을 부여한 IAM으로 EC2 인스턴스 생성
기존에 EC2를 생성했던 방법과 다른 점은 IAM 역할을 부여한다는 것입니다.
IAM 역할을 부여한 EC2 인스턴스는 S3의 접급만 가능하고, 다른 서비스로의 접근 불가능합니다.
이전 글의 과정 (1) ~ (5)까지는 같습니다.
14)
아까 저는 role name을 role_1로 설정했습니다.
IAM 역할을 부여하고 나면 이후의 과정은 또 같습니다.
방금 생성한 EC2 인스턴스는 S3의 접근 외의 다른 서비스 접근은 불가능하게 되었습니다.
IAM 역할을 부여했기 때문이죠 !
이상으로 IAM 계정을 생성하여 역할을 부여하고 이 역할로 EC2 인스턴스를 생성해보았습니다.