웹 자격 증명 연동에 대하여 - AWS Identity and Access Management

웹 자격 증명 연동에 대하여

모바일 디바이스에서 실행되고 Amazon S3 및 DynamoDB를 사용해 플레이어와 점수 정보를 저장하는 게임과 같은 AWS 리소스에 액세스하는 모바일 앱을 만들고 있다고 상상해 봅시다.

그런 앱을 만들 때 AWS 액세스 키로 서명해야 하는 AWS 서비스에 요청을 할 것입니다. 그러나 암호화된 스토어에서일지라도 사용자가 디바이스에 다운로드하는 앱으로 장기 AWS 자격 증명을 포함 또는 배포하지 말 것을 강력하게 권고합니다. 대신 앱을 구축해 웹 자격 증명 연동을 사용하여 필요시 동적으로 임시 AWS 보안 자격 증명을 요청할 수 있도록 하십시오. 제공된 임시 자격 증명은 모바일 앱에 필요한 작업을 수행하기 위해 필요한 권한만을 지닌 AWS 역할에 매핑됩니다.

웹 자격 증명 연동을 사용하면 사용자 지정 로그인 코드를 생성하거나 자신의 사용자 자격 증명을 관리할 필요가 없습니다. 대신에, 앱의 사용자는 Login with Amazon, Facebook, Google 또는 다른 OpenID Connect(OIDC) 호환 IdP와 같은 널리 알려진 외부 자격 증명 공급자(IdP)를 사용해 사용자가 로그인할 수 있습니다. 앱의 사용자는 인증 토큰을 받은 다음, AWS에서 이 토큰을 AWS 계정의 리소스를 사용할 수 있는 권한을 가진 IAM 역할에 매핑되는 임시 보안 자격 증명으로 바꿉니다. IdP를 사용하면 AWS 계정을 안전하게 보호할 수 있다는 이점이 있습니다. 애플리케이션으로 장기 보안 자격 증명을 포함하고 배포할 필요가 없기 때문입니다.

대부분의 시나리오에서 Amazon Cognito를 사용할 것을 권장하는 이유는 Amazon Cognito는 자격 증명 브로커의 역할을 하고 연동 작업의 대부분을 수행하기 때문입니다. 자세한 정보는 모바일 앱을 위한 Amazon Cognito 사용 단원을 참조하십시오.

Amazon Cognito를 사용하지 않는다면 웹 IdP(예: Facebook, Google 또는 기타 OIDC 호환 IdP)와 상호작용하는 코드를 작성한 다음, AssumeRoleWithWebIdentity API를 호출해 그 IdP에서 얻는 인증 토큰을 AWS 임시 보안 자격 증명과 바꾸어야 합니다. 기존 앱에 대해 이러한 접근 방식을 이미 사용해왔다면 그것을 계속 사용할 수 있습니다.