AWS IAM(내 AWS 계정에 접근하기 - 로컬에서 AWS 접속)

AWS IAM(내 AWS 계정에 접근하기 - 로컬에서 AWS 접속)

IAM - Identity and Access Management

IAM은 AWS 내의 계정을 관리하는 서비스 입니다.

IAM을 이용하여 사용자 계정을 만들어, 이 사용자 계정을 통해 프로그램에서 AWS에 접근할 수 있도록 합니다.

IAM 대시보드

1. Aws와 프로그램 연동을 위한 계정 만들기

사용자 메뉴 클릭 - 사용자 추가(액세스 유형 - 프로그래밍 방식 엑세스)

2. 사용자 권한 부여

생성하는 사용자에게 권한을 부여합니다.

기존 그룹에 추가하는 방법, 기존 사용자 권한 복사, 기존 정책 직접 연결하는 방법이 존재합니다.

처음에는 사용자가 없기때문에 정의되어 있는 저액에 직접 연결하는 방법을 사용합니다.

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

키확인

로컬 PC에서 접속을 위해 액세스 키 ID와 비밀액세스 키를 기억해 두어야합니다.

S3 와 파이썬 연동 - Flask 를 사용하여 S3 업로드 웹페이지 구현

IAM을 사용하는 이유 - S3와 개발언어와 연동하기 위해서 사용

AWS에 접속할 수 있는 사용자 계정을 만들었으니 Flask에서 AWS S3 에 접속해 봅시다.

1. boto3 라이브러리 이용

boto3 라이브러리를 활용하여 AWS와 연동이 가능합니다

boto3 라이브러리 : aws 와 파이썬을 연동하기위한 라이브러리

import boto3 from flask import Flask, render_template, request, jsonify app = Flask(__name__) @app.route('/') def main(): return render_template('index.html') @app.route('/fileupload', methods=['POST']) def file_upload(): file = request.files['file'] s3 = boto3.client('s3') s3.put_object( ACL="public-read", Bucket="{버킷이름}", Body=file, Key=file.filename, ContentType=file.content_type) return jsonify({'result': 'success'}) if __name__ == '__main__': app.run()

S3 정적 호스팅 기능을 이용하여 프론트(html) 외부에 공개하기

S3 기능 중에 단순 저장 이외에도 정적 웹 사이트 호스팅 기능이 존재한다.

이 기능을 이요하여 프론트 페이지를 구성해보자

기능이 활성화가 되었고, 버킷 웹 사이트 엔드 포인트가 생겼습니다.

엔드 포인트 URL을 이용하면 브라우저에서 사이트를 볼 수 있지만, 현재 index.html 파일을 업로드하지 않았기 때문에 403에러 페이지가 나옵니다.

S3에서 index.html 파일 업로드 후, 파일의 권한을 퍼블릭하게 변경하면 버킷 앤드포인트로 확인이 가능합니다!

728x90

from http://thalals.tistory.com/140 by ccl(A) rewrite - 2021-09-27 18:00:15