-
aws - lambda 가 작동하기 위한 권한 찾기대학 수업/클라우드 2024. 11. 19. 20:55
구성방안
S3 - html 문서 기반 웹 호스팅
0) block public access
1) static web hosting : name, enable
2) bucket policy
{ "Version": "2012-10-17", "Id": "Policy1732509371725", "Statement": [ { "Sid": "Stmt1732509370693", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::sokectket/*" } ] }
3) cors
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
4) check api gateway address
꼭 저장하고 html 파일 업로드 할 것
API Gateway - 웹에서 보낸 요청 받는 곳(Router)
1) deploy
Lambda - Json 파일 받아서 내용 정합성 및 변환 후 dynamo로 전달
1) 중간 중간에 각 단계 확인 가능한 print()삽입
2) Role - Policies
CloudWatch Log - Lambda 의 작동 환경 기록
=> lambda 작동 시 자동으로 기록됨 : 작동해야 기록됨
DynamoDB - 파일 받아서 기록, 웹에서 호출 시 반환
html : Get, Post 등의 클라이언트의 입력
람다 : 각각의 html명령을 받으면 ~ 이렇게 처리하라
DB : 값의 저장 및 반환
-> 각각이 개별 기기 : 보안을 위해 상호작용을 위한 권한 부여가 제한되어 있음
--> 내가 직접 User, Role, Policy을 통해 Permission 설정하여 각 단말간 연결성을 만들어야 함
+ CORS
1) 각 단말별 필요로 되는 권한은 무엇인가?
서버내의 각 기능별 연결 policy : s3 내에서 어떤 기능을 작동할 수 있게 할 것인가?
S3에 웹사이트 개시했고, 사용자로부터 입력을 받기에 cors(Cross-Origin Resource Sharing)
: 외부 입력값을 받아 올 것인가?
2) cors와 policy의 차이
외부 간섭권 // 서버 내부 연결성
3) s3의 권한 중 putobject는 html의 post 기능을 잘 반영할 수 있는가? - 아닐것으로 예상됨
내부 html문서를 수정할 필요가 없다.
하지만 CORS의 post 기능을 활성화하여 입력을 받을 필요는 있다.
4) DB에 대한 Get호출은 어떻게 이뤄지는가?
table = dynamodb.Table('Animals') ... try: response = table.scan() items = response.get('Items', []) return { 'statusCode': 200, 'headers': { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' # CORS 설정 }, 'body': json.dumps(items) }
'대학 수업 > 클라우드' 카테고리의 다른 글
터미널 사용? 방법 및 가상환경 구축 + sublime (0) 2024.09.02