일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Class
- 중급파이썬
- async
- SAA
- SSA
- Props
- 튜플
- dict
- merge
- 카톡
- git
- TypeScript
- pandas
- 채팅
- node
- RDS
- MongoDB
- S3
- react
- lambda
- 파이썬
- AWS
- flask
- docker
- crud
- NeXT
- Vue
- wetube
- EC2
- socket io
- Today
- Total
초보 개발자
aws IAM 본문
IAM이란 ?
IAM stands for Identity and Access Management
이건 글로벌 서비스이다. ( 특정 리전에 국한 된 서비스가 아님 ) 여기서 유저와 그룹을 만들 수 있다.
aws에서 처음 아이디를 만들었을 때 생기는 것은 root account이다.
이건 처음에 아이디를 설정할 때만 사용하고 그 이후에는 더이상 사용하지 않는 것이 좋다. 공유하는 것은 안된다.
root account를 이용하여 유저를 생성한다. 그리고 그룹을 이용하여 생성한 유저를 묶을 수 있다.
그룹은 오직 유저만 묶을 수 있다. ( 그룹은 묶을 수 없음 )
Groups only contain users
유저는 하나의 그룹에만 들어갈 수 있는 것은 아니고 여러 그룹에 들어갈 수 있다.
a user can belong to multiple groups
물론 유저를 꼭 그룹에 넣지 않아도 되지만, 이건 best practice가 아니다.
근데 왜 유저랑 그룹을 만들어야해 ?
계정을 사용하도록 하기 위하여 유저를 만들고, 권한을 주기 위해서 필요하다.
6명의 동료가 있으면 6개의 유저를 생성하고 권한에 맡게 그룹에 배정하면 된다.
User, group은 JSON Document policy를 가지고 있는데, 이를 통해 권한을 제어할 수 있다.
in aws, you apply least privilege principle : dont give more permissions then user needs
먼저 그룹을 하나 만들고, AdministratorAccess 권한을 추가한다.
그리고 iam 유저를 만들고, 그 그룹에 넣는다. 비밀번호를 추가해주면 다음부터 로그인할 때에는 생성한 유저로 로그인 할 수 있다.
이제 루트유저는 거의 사용을 하지 않을 것이다. 가끔 설정할 때 빼고는.
만약 한 유저가 두 개의 그룹에 속해있다면 ?
한 유저가 두개의 그룹에 속할 수 있다.
이런 경우 두 그룹의 권한을 둘 다 상속받게 된다.
권한을 json policy로도 줄 수 있다.
version key의 value는 "2012-10-17"로 고정이다.
id key의 value는 식별자를 적으면 된다. (optional)
Statement의 value는 하나 혹은 그 이상일 수 있다. 배열을 가지며
그 요소는 아래와 같다.
sid key값의 value는 statement의 식별자를 적으면된다. (optional)
effect key 값의 value는 Allow 혹은 Deny이다. 해당 statement를 허가 하느냐의 의미같다.
principal key값의 value는 해당 statement를 적용할 account/user/role을 적어주면 된다.
action key값의 value는 list of api call 이다.
resource key값의 value는 그 action이 적용될 곳을 적는다.
condition (optional)
MFA multi factor authentication
aws에는 password policy가 있다.
최소 길이,
특수문자 포함,
비밀번호 변경주기,
등등..
많지만 MFA라는 것을 꼭 사용하는 것을 추천한다.
이건 비밀번호 + 기기를 사용하여 로그인 하는 것이다.
기기란 핸드폰등등을 말한다. 만약 해커가 비밀번호를 탈취한 들 물리적인 기기가 존재하지 않으면 로그인하지 못하기에
강력한 보안수단이 될 수 있다.
비밀번호 설정은 아래에서 변경할 수 있다.
MFA는 우측 상단에 아이디를 눌러서 설정에 가면 할 수 있다. 굳이 해보지는 않겠다.
AWS에 접근할 수 있는 방법
지금까지는 console에 비밀번호로 로그인해서 접근하는 방법만 해보았지만 몇가지 더 있다.
CLI ( access key로 접근 ) terminal에서 접근하는 것
SDK ( access key로 접근 ) 소스코드상에서 접근하는 것
cli 설치 방법
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-version.html
설치를 완료하면 아래와같이 잘 나타나는 것을 확인할 수 있다.
우측 상단 보안 자격 증명에 들어가면 액세스 키를 생성할 수 있다.
아래와 같이 키와 비밀키가 나오는데 한번 알려주고 안알려주니 꼭 적어 두던가, csv로 다운로드 해두자
aws configure을 입력하고
입력을 해주면 cli에서 로그인을 해줄 수있다. iam 유저는 adminstratoraccess권한을 가지고ㅇ 있기에 아래와 같은 명령어를 사용할 수도있다.
aws iam list-users
cloudshell 을 사용해서 aws console상에서 cli를 사용할 수 있다. 자동으로 로그인이 되어있는 것 같다. 여기서 파일을 만들고 나갔다 들어와도유지가된다. 하지만 사용할 수 있는 리전이 한정되어있기에 사용하려면 리전을 바꿔야할지도 모른다.
IAM role
assign permission to AWS service with iam role
예를들어 ec2에 iam role을 적용해주면 ec2가 특정 기능을 수행할 수 있는 permission을 얻는다.
role은 계정에 적용하는 것이 아니라 aws의 서비스에 적용을 하는 것이다.
Access Adviser
user에 들어가면 가진 권한을 최근에 언제 사용했는지 알 수 있다.
자격증명보고서
모든 아이디의 정보가 나온다.