AWS/IAM(Identify and Access Management)

IAM

infra 2021. 10. 19. 15:40

IAM Identity and Access Management

사용자, 역할을 관리하는 서비스라고 보시면 됩니다.

OS 에서 비유하자면 리소스(CPU,memory,disk, network 등등)에 대한 관리 개념입니다.

 

IAM 관련 문서는 다음 URL에 접속하시면 됩니다.

 

https://docs.aws.amazon.com/iam/?id=docs_gateway

 

https://docs.aws.amazon.com/iam/?id=docs_gateway

 

docs.aws.amazon.com

[1] IAM을 활용해서 S3 & 프로그래밍 연동하기

 

IAM의 목적은 S3와 프로그래밍(python, java, C 언어 등등의 개발언어 )과의 연동하기 위해 사용하는 것입니다.

사용자의 프로필 업로드기능이 있습니다.

 

<1단계> 사용자 추가하기

 

프로그램을 연동하려면 우선 사용자를 추가해봅시다.

1) 프로그래밍 방식 엑세스 : 개발 언어와 연계해서 사용하는 방식

2)AWS Management Console 엑세스 : 해당계정을 AWS 콘솔에서 로그인해서 사용하게 하는 방식

 

 

 

<2단계> 권한 설정하기

 

기존그룹에 추가하는 방법, 기존사용자 권한 복사, 기존 정책 직접 연결 하는 방법 총 3가지가 있네요.

저는 기존 그룹, 사용자가 없기때문에 정의되어 있는 정책에 직접 연결하는 방법을 사용합니다.

S3를 위한 사용자이기 때문에 AmazonS3FullAccess 권한을 부여합니다.

 

1)그룹에 사용자 추가

ex) EC2 를 사용하는 그룹, S3를 사용하는 그룹 따로따로 있으면 추가가능함.

 

2)기존 사용자에서 권한 복사

사용자를 만들떄마다 권한을 부여할 수 없기 때문에

 

3)기존 정책 직접 연결

 

AmazonS3FullAccess :  S3에 관한 모든 사용권한을 부여하는 정책

 

 

<3단계>태그 추가

 

 

<4단계> 검토

이제 최종적으로 amazons3fullaccess에 권한을 부여하는 화면입니다.

사용자 만들기 버튼을 누르면 최종적으로 다음과 같이 사용자를 생성했네요.

 

<5단계> 사용자 생성 성공

액세스키와 비밀 액세스 키는 따로 저장해놓고 보관해놔야 합니다.

 

생성 완료 후 닫기 버튼 누르시면 다음과 같이 사용자가 나오네요.

MFA는 multi factor Access인데, 저는 따로 2차 인증하는 tool을 따로 설치 하지 않아서 없는거구요.

다음과 같이 사용자는 생성되었어요.

 

SDK를 활용해서 S3 파일을 업로드 할건데, SDK(=Software Development Kit)

프로그래밍을 돕는 라이브러리라고 생각하

AWS SDK를 이용하면 개발과 연동해서 AWS를 사용할 수 있게 되요

 

OS에서 JRE, JDK같은 경우를 예로 들자면, 

JRE(Java Runtime Environment) :

java 프로그램을 동작 시킬 때 필요한 라이브러리 파일 및 기타파일들을 갖고 있어요.

 

JDK(=Java Development Kit) : JRE 에 추가해서 개발을 위해 필요한 도구, 즉, 프로그래밍을 돕는 라이브러리인 셈이죠.

=> JRE + 개발을 위해 필요한 도구

 


[2] AWS CLI 사용해서 SDK와 연동하여 업로드 하기

 

AWS CLI 툴 다운로드해서 해당 host OS인 PC에 powershell 또는 cmd 창으로 명령어를 넣어줍니다.

아까 4단계에서 얻은 액세스 키 ID와 비밀 액세스 키 ID를 미리 준비해서 붙여놓습니다.

C:\Users\infraleesh>aws --version
aws-cli/2.2.46 Python/3.8.8 Windows/10 exe/AMD64 prompt/off

C:\Users\infraleesh>aws configure
AWS Access Key ID [None]:  xxxx.........[액세스 키 ID]
AWS Secret Access Key [None]:   xxxxxyy... [비밀 액세스 키 ID]
Default region name [None]: ap-northeast-2
Default output format [None]: json

 

그 후 cmd창에서

aws s3 cp "infraleesh iam이라는 .png파일을 따로 업로드 하면 aws의 S3에서도 다음과 같이 업로드된 걸 확인할 수 있습니다.

 

또 해당 버킷에 들어와서 객체 URL 이미지 복사 후 웹 브라우져에 띄우니 이미지가 나오네요.