IAM Identity and Access Management
사용자, 역할을 관리하는 서비스라고 보시면 됩니다.
OS 에서 비유하자면 리소스(CPU,memory,disk, network 등등)에 대한 관리 개념입니다.
IAM 관련 문서는 다음 URL에 접속하시면 됩니다.
https://docs.aws.amazon.com/iam/?id=docs_gateway
[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 이미지 복사 후 웹 브라우져에 띄우니 이미지가 나오네요.