ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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에서 제공하는 좋은 서비스인 것 같으니 본인 프로젝트에 사용해보는 것도 좋을 것 같다.
    반응형

    댓글

Designed by Tistory.