웹 ID 페더레이션 정보 - AWS Identity and Access Management

웹 ID 페더레이션 정보

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

이런 앱을 작성할 때는 AWS 액세스 키로 서명해야 하는 AWS 서비스에 요청을 할 것입니다. 하지만 사용자가 디바이스로 다운로드하는 앱에는 암호화된 저장소라도 장기 AWS 자격 증명을 배포하거나 포함하지 않는 것이 좋습니다. 대신 앱에서 필요할 때 웹 ID 페더레이션을 사용하여 동적으로 임시 AWS 보안 자격 증명을 요청하도록 앱을 구축합니다. 제공된 임시 자격 증명은 모바일 앱에 필요한 작업을 수행하기 위해 필요한 권한만을 지닌 AWS 역할에 매핑됩니다.

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

대부분의 시나리오에서 Amazon Cognito를 사용하는 것이 좋은데, Amazon Cognito가 자격 증명 브로커의 역할을 하고 페더레이션 작업을 대부분 수행하기 때문입니다. 자세한 정보는 모바일 앱에 Amazon Cognito 사용 단원을 참조하십시오.

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