-
AWS Cognito로 자격증명 생성하기Project/Translator 2022. 9. 14. 03:52반응형
기존에 루트 사용자에서 발급받은 Access Key와 Secret Key를 통해서 AWS를 이용했었는데,
루트 사용자의 사용을 AWS에서 지양하기 때문에 거기에 대한 대안으로 제시하는 Cognito를 이용해봤다.
Cognito란 ?
Amazon Cognito는 웹 및 모바일 앱에 대한 인증, 권한 부여 및 사용자 관리를 제공합니다.
사용자는 사용자 이름과 암호를 사용하여 직접 로그인하거나 Facebook, Amazon, Google 또는 Apple 같은 타사를 통해 로그인할 수 있습니다.AWS공식 홈페이지에서 이렇게 설명하고 있다. Cognito를 사용하면 우리가 이용하는 service에만 권한을 등록하고
sdk.js로 저장한다. 그렇다면 제한된 서비스에만 접근이 가능하기 때문에 루트 사용자보다 안정성이 훨씬 높다.
Cognito 사용하기.
사용법은 쉽다.
AWS방문 > 연동자격증명 > 자격증명 풀 관리 > 자격증명 풀 생성.
이게 전부이다.
풀을 생성할 때 별다른 로그인 없이 내 웹이나 앱을 방문한 사용자가 해당 서비스를 이용할 수 있게 만들고 싶다면,
자격증명 풀 생성 단계에서 인증되지 않은 사용자에 대한 권한을 허용해주면 된다. 체크박스가 있습니다!
AWS Cognito 나는 미리 자격증명 풀을 생성했고, 샘플코드에 어떻게 사용하면 되는지 친절하게 나와있다.
본인이 만들고 있는 플랫폼을 설정한 뒤 코드를 그대로 복붙하면 끝!
import key from './js/config/key.js'
AWS.config.region = "ap-northeast-2"AWS.config.credentials = new AWS.Credentials(key.active, key.secret);이건 내가 기존에 사용하고 있던 코드이다.key를 가진 js파일을 따로 만들어서 .gitignore에 등록해놓고 가져다썼다. 바뀐 코드는AWS.config.region = 'us-east-1';AWS.config.credentials = new AWS.CognitoIdentityCredentials({IdentityPoolId: 'Your Identity PoolID',});이렇게 바뀌었다. 외부 js파일에서 가져올 필요도 없고 해당 poolID는 노출되도 지정한 서비스에만 접근할 수 있기 때문에안전하다. 나는 다른 모든 권한을 제외하고 내가 제공하는 translator만 가능하게 만들어놨다ㅎ항상 AWS에 접속할 때 루트 사용자에 대한 위험을 알리는 메세지와 더불어 Accesskey를 직접적으로 사용하는 방식이조금 마음에 걸렸는데 Coginto를 사용함으로써 해소할 수 있었다.AWS에서 제공하는 좋은 서비스인 것 같으니 본인 프로젝트에 사용해보는 것도 좋을 것 같다.반응형'Project > Translator' 카테고리의 다른 글
JS코드를 TS코드로 변환해보기 (0) 2023.01.02 번역기 사이트 SEO 설정하기. (0) 2022.10.07 API Keys 보호하기 (0) 2022.09.12 [AWS번역기]뚝딱 만들어버린 번역기 - CodeHan의 SideProject (0) 2022.09.10