IAM(Identity and Access Management)이란 무엇인가?
: AWS를 사용하는 데에 가장 기초적인 서비스 중 하나로, AWS의 리소스들을 관리하고 권한을 설정하며, 각 리소스 간의 연계를 위해 필수적인 시스템이다.
가장 기초적으로 세팅해야 하는 서비스이고, 유저 로그인, 유저 간 권한 관리, 패스워드 설정, 리소스 간 연계 시 권한 등의 세밀한 설정이 가능하다.
AWS를 가입한 후에, 처음 다시 로그인하게 되면, 아래와 같은 창을 확인할 수 있다.
IAM이란 것을 설정하기 전에는 '루트 사용자'에 체크하고, 처음 가입할 때 넣었던 이메일 주소로 로그인할 텐데, 이 '루트 사용자'는 Linux의 root 라고 생각해보면 된다.내가 만든 AWS 시스템의 모든 권한을 다 가지고 있다는 것이다.
특히 돈과 관련된, billing과 관련된 모든 설정을 변경하는 것도 가능하므로, 가능한 한 IAM을 만들어 해당 IAM 계정으로 로그인을 하고, 루트 사용자는 MFA를 적용하고, 반드시 필요할 때만 사용하도록 하는 것이 보안상 필수적으로 필요한 과정이다.
1. [IAM user and role access to Billing information] 활성화
IAM 계정을 생성하기 전, 해당 옵션을 루트 사용자에서 활성화함으로써, IAM 유저가 billing과 관련된 설정에 접근할 수 있도록 해야 한다.
1.1. [Account] 메뉴 진입
아래 그림처럼 AWS에 가입한 사용자로 로그인(루트 사용자)을 한 후, 계정 옆 [화살표] - [Account] 를 클릭한다.
1.2. [IAM user and role access to Billing information] - [Edit] 버튼 클릭
Account 메뉴에서 보면, [IAM user and role access to Billing information] 이 보일텐데, 이 설정을 활성화 해줌으로써, 루트 사용자가 아닌 특정 IAM 사용자가 Billing 및 Cost와 관련된 관리 설정에 접근할 수 있도록 한다.
우리는 최종적으로 루트사용자 최대한 사용하지 않도록 할 것이므로, 특정 IAM 사용자는 Billing 및 Cost와 관련된 관리 설정에 접근할 수 있도록 해야 한다.
1.3. 'Activate IAM Access' 체크 - [Update] 버튼 클릭
2. MFA 등록
여기에서 등록하는 MFA는, [IAM Identity Center]에 대한 MFA가 아닌, [IAM]에 대한 MFA임을 주의하자.
여기에서 MFA를 등록하면, 루트 사용자에 대한 MFA도 등록되어, 루트 사용자로 함부로 로그인되는 것을 막을 수 있다.
2.1. [서비스 검색] 란에서 'IAM' 이라고 검색 - [IAM] 서비스로 접근
2.2. MFA 추가
2.3. MFA 추가 시 필요한 정보 입력
Device name에는 필자가 알아보기 쉽게 Galaxy S23 등으로 지정하였고, 인증 수단을 3가지 중에 선택할 수 있는 데, 필자의 경우, [Authenticator app]을 선택하여 Google의 Authenticator App으로 등록하였다.
3. IAM 생성
3.1. [서비스 검색] 란에서 'IAM' 이라고 검색 - [IAM] 서비스로 접근
3.2. [IAM] 서비스 - [Users] 메뉴 선택 - [Create user] 클릭
3.3. [User name]에 원하는 로그인 name 입력
- 'Provide user access to the AWS Management Console' 체크(루트사용자와 동등한 권한 갖게 하기 위함)
- 'Specify a user in Identity Center' 클릭
그럼 아래와 같은 창이 뜰텐데, 'Manage in Identity Center' 를 클릭해준다. (아놔, 결국 AWS Identity Center 콘솔에서 다시 계정 추가를 해줘야 하나보다.)
[IAM Identity Center]에서 생성한 IAM 계정은, 여기에서 공유되는 특정 Access URL을 통해서만 해당 AWS 서비스로 접근이 가능하다. 이 점을 유의하고 [IAM Identity Center]와 [IAM]을 구분하자!
3.4. 'Enable IAM Identity Center'의 [Enable] 버튼 클릭
3.5. [Enable with AWS Organizations] 선택 - [Continue] 버튼 클릭
3.6. IAM Identity Center 활성화 후 - [IAM Identity Center] 웹 콘솔 진입
- [Users] 메뉴 클릭 - [Add user] 버튼 클릭
3.7. 유저 생성 양식 작성
필자는 [Primary information]을 모두 작성한 후에, 추가로 [Preferences]의 'Nickname'과 'Timezone'만 설정해 주었다.
이렇게 하고 넥스트~ 넥스트~ 눌러주면, [IAM Identity Center] 웹 콘솔의 홈 화면으로 이동하면서, 아래와 같은 메시지가 상단에 노출될 것이다.
[Primary information]에 입력한 이메일을 확인하여, 인증 과정을 마쳐야만 IAM 유저가 정상적으로 추가된다.
메일에서 Accept를 클릭해주면, 해당 IAM 계정으로 로그인되고, 새로운 비밀번호를 설정하는 창으로 리다이렉션된다.
거기에서 새로운 비밀번호로 설정해주자.
그리고 아직 루트사용자 로그인은 로그아웃하지 말자!!
3.8. [IAM Identity Center] 웹 콘솔 - [Groups] 메뉴 - [Create group] 버튼 클릭
3.9. [Create Group] 화면에서 Group name 설정 - [Add users to group] 에서 생성한 계정 추가
필자는 그룹명을 'Administrators'라고 지었는데, 이건 원하는대로 아무렇게나 지어도 된다.
3.10. [IAM Identity Center] 웹 콘솔
- [Multi-account permissions]의 [AWS accounts] 메뉴
- 3.7.에서 생성한 계정 선택 - [Assign users or groups] 버튼 클릭
우리가 추가한 계정 및 그룹이 루트 사용자의 권한처럼 로그인하려면, 루트 사용자 하위에 'management account'에 대한 Multi-account permission이 필요하다.
3.11. Multi-account permission을 추가할 [IAM Identity Center]의 계정 및 그룹 선택
3.12. [Select permissions sets] 화면 - [Create permissions set] 클릭
위 [Create permissions set] 버튼을 클릭하면 창이 하나 뜨는데, 다음 이미지와 같이 진행하자.
[Types] 에서 'Predefined permissions set' 을 선택하고, [Policy for predefined persmission set] 에서 'AdministratorAccess'를 선택하면 루트사용자와 동일한 권한을 가지게 된다.
이 다음 Step 2인 [Specify permission set details] 에서도 디폴트로 설정되어 있는 것을 그대로 두고, [Next] 버튼을 클릭하자.
역시 그다음 Step 3인 [Review and create] 에서 [Create] 버튼을 클릭하면 [permissions set]이 생성 완료된다.
[Assign users and groups] 창으로 돌아와, 새로고침 버튼을 눌러주면 다음과 같이 'Permission set'이 생긴 걸 확인할 수 있고, 이를 체크하고 [Next]버튼 클릭 - 다음 Step 3 [Review and submit]에서 [Submit] 버튼 클릭하면 된다.
그럼 다음과 같이 성공 문구와 함께 AdministratorAccess 권한이 들어간 것을 볼 수 있다.
3.13. 인증 메일 통해서 리다이렉션 되는 로그인 화면에서 로그인
인증 메일의 링크를 클릭하면, AWS 로그인 창으로 리다이렉션 되는데, 여기에서 IAM Username과 Password를 입력하여 로그인 성공 되는 것을 확인하면 된다.
그리고 이때, MFA를 또 등록하게 되는데, 이 MFA는 IAM 전체(?)에 대한 MFA와 별개이므로, 별도로 또 등록을 해주는 것이 맞다.
또 한가지 주의할 점은, [IAM Identity Center]를 통해 생성한 계정은, 아래 그림에서 보이는 'AWS 액세스 포털 URL'을 통해서만 로그인이 가능하다는 것이다. 따라서 저 액세스 포털 URL을 Admin만이 아는 어떤 곳에 잘 복사해두고 사용하도록 하자!
Budgets이란 무엇인가?
: AWS에서 제공하는 유동적인 예산 및 예측 기능으로, 비용적인 측면에서의 계획 및 비용 제어 과정을 개선할 수 있는 서비스이다.
- 사용자 지정 예산을 통해 비용, 사용량, 적용 범위를 추적할 수 있다.
- 지출 및 리소스 사용에 대한 예측 정보를 계속 제공받을 수 있다.
- 사용자 지정 작업을 생성하여 초과 요금, 비효율적인 리소스 사용 또는 적용 범위 부족을 방지할 수 있다.
AWS에 대한 학습은 최대한 프리 티어를 이용할 것이기 때문에,
0.01$ 이상의 비용이 발생하면 메일로 알림을 오도록 설정할 것이다.
4. Budgets 설정
4.1. [Account] - [Billing and Cost Management] 화면에서 [Budgets] 메뉴 클릭 - [Create a budget] 버튼 클릭
4.2. Budgets 양식 작성
친절하게도, Budgets 생성을 하면 'Zero spend budget' 이라는 템플릿이 이미 있어, 해당 템플릿으로 적용하면 AWS 프리 티어 초과 사용량에 대한 0.01$ 이상의 비용이라도 발생하면 알림을 발생할 수 있게 해준다.
4.3.생성된 Budgets 확인
그럼 다음과 같이 생성된 것을 확인할 수 있다!
참고
https://growth-coder.tistory.com/115
https://aws.amazon.com/ko/aws-cost-management/aws-budgets/
최근댓글