AWS의 IAM에 대해서 배웠다. 일단 AWS에 대해서 거의 모르지만 차근차근 정리해보려 한다.
우선 이렇게 막무가내로 정리하고 나중에 다듬으려 한다.
Identity(실사용자) and Access Management의 약자
루트 사용자가 아닌 iam으로 로그인하는걸 권장.
IAM을 이용해서 SDK를 사용할때는 SDK가 AcessId 와 Secret Key를 http 에 포함시켜 API를 사용할 수 있게 해줌.
role을 부여할 경우 id와 key를 하드코딩 하지 않아도 됨. 임시 credential을 토큰 형태로 부여받기 때문
인가같은경우 policy를 json형태로 만들어 aws에 제출(아래와 같이 제출가능)
{
"Effect": "Allow",
"Action": [
"dynamodb:GetItem",
"dynamodb:PutItem"
],
"Resource": [
"arn:aws:dynamodb:us-east-2:111112233:table/MyTable"
],
"Condition":{
"IpAddress" :{
"aws:SourceIp": "1.1.1.1"
}
}
}
==> MyTable이라는 dynamodb에 get,put만 할 수 있게 함. 접근 가능한 ip는 1.1.1.1임
--> 그럼 인증과 인가를 거쳐 aws를 이용할 수 있게 됨
"Assume"의 뜻: Assuming a role involves using a set of 'temporary' security credentials that you can use to access AWS resources that you might not normally have access to.