1단계: 애플리케이션에서 데이터를 AWS로 전송하도록 권한 부여 - Amazon CloudWatch

1단계: 애플리케이션에서 데이터를 AWS로 전송하도록 권한 부여

CloudWatch RUM을 사용하려면 애플리케이션에 권한 부여가 있어야 합니다.

권한 부여를 설정할 수 있는 3가지 옵션이 있습니다.

  • CloudWatch RUM에서 애플리케이션을 위한 새 Amazon Cognito 자격 증명 풀을 생성할 수 있습니다. 이 방법은 설정하는 데 최소한의 노력이 필요합니다. 이 방법이 기본 옵션입니다.

    자격 증명 풀에는 인증되지 않은 자격 증명이 포함됩니다. 이렇게 하면 CloudWatch RUM 웹 클라이언트가 애플리케이션 사용자를 인증하지 않고도 CloudWatch RUM에 데이터를 전송할 수 있습니다.

    Amazon Cognito 자격 증명 풀에는 연결된 IAM 역할이 있습니다. Amazon Cognito 인증되지 않은 자격 증명을 사용하면 웹 클라이언트가 CloudWatch RUM에 데이터를 전송할 수 있는 권한이 부여된 IAM 역할을 맡을 수 있습니다.

  • 기존 Amazon Cognito 자격 증명 풀을 사용합니다. 이 경우 자격 증명 풀에 연결된 IAM 역할도 수정해야 합니다. 인증되지 않은 사용자를 지원하는 자격 증명 풀에 이 옵션을 사용합니다. 동일한 리전의 자격 증명 풀만 사용할 수 있습니다.

  • 이미 설정한 기존 자격 증명 공급자의 인증을 사용합니다. 이 경우 자격 증명 공급자로부터 자격 증명을 가져와야 하며 애플리케이션은 이러한 자격 증명을 RUM 웹 클라이언트에 전달해야 합니다.

    인증된 사용자만 지원하는 자격 증명 풀에 이 옵션을 사용합니다.

다음 섹션에서는 이러한 옵션에 대해 상세히 알아봅니다.

CloudWatch RUM에서 새 Amazon Cognito 자격 증명 풀을 생성합니다.

이 옵션은 가장 간단한 설정 옵션이며, 이 옵션을 선택하면 추가 설정 단계가 필요하지 않습니다. 이 옵션을 사용하려면 관리 권한이 있어야 합니다. 자세한 내용은 CloudWatch RUM을 사용하는 IAM 정책 단원을 참조하십시오.

이 옵션을 사용하면 CloudWatch RUM이 다음 리소스를 생성합니다.

  • 새로운 Amazon Cognito 자격 증명 풀

  • 인증되지 않은 Amazon Cognito 자격 증명. 이를 통해 RUM 웹 클라이언트는 애플리케이션 사용자를 인증하지 않고 IAM 역할을 맡을 수 있습니다.

  • RUM 웹 클라이언트가 맡을 IAM 역할. 이 역할에 연결된 IAM 정책을 통해 앱 모니터 리소스가 포함된 PutRumEvents API를 사용할 수 있습니다. 즉, RUM 웹 클라이언트가 데이터를 RUM으로 보낼 수 있습니다.

RUM 웹 클라이언트는 Amazon Cognito 자격 증명을 사용하여 AWS 자격 증명을 획득합니다. AWS 자격 증명은 IAM 역할과 연결됩니다. IAM 역할은 AppMonitor 리소스로 PutRumEvents를 사용할 수 있는 권한이 있습니다.

Amazon Cognito는 애플리케이션이 CloudWatch RUM에 데이터를 전송할 수 있도록 필요한 보안 토큰을 전송합니다. CloudWatch RUM이 생성하는 JavaScript 코드 조각에는 인증을 활성화하기 위한 다음 줄이 포함됩니다.

{ identityPoolId: [identity pool id], // e.g., 'us-west-2:EXAMPLE4a-66f6-4114-902a-EXAMPLEbad7' } );

기존 Amazon Cognito 자격 증명 풀을 사용

기존 Amazon Cognito 자격 증명 풀을 사용하도록 선택한 경우 애플리케이션을 CloudWatch RUM에 추가할 때 자격 증명 풀을 지정합니다. 풀은 인증되지 않은 자격 증명에 대한 액세스를 활성화할 수 있도록 지원해야 합니다. 동일한 리전의 자격 증명 풀만 사용할 수 있습니다.

또한 이 자격 증명 풀과 관련된 IAM 역할에 연결된 IAM 정책에 다음 권한을 추가해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rum:PutRumEvents", "Resource": "arn:aws:rum:[region]:[accountid]:appmonitor/[app monitor name]" } ] }

Amazon Cognito는 애플리케이션이 CloudWatch RUM에 액세스할 수 있도록 필요한 보안 토큰을 전송합니다.

서드 파티 공급자

서드 파티 공급자로부터 프라이빗 인증을 사용하는 경우 자격 증명 공급자로부터 자격 증명을 가져와 AWS로 전달해야 합니다. 이를 수행하는 가장 좋은 방법은 보안 토큰 공급 업체를 이용하는 것입니다. AWS Security Token Service와 함께 Amazon Cognito를 포함한 모든 보안 토큰 공급 업체를 이용할 수 있습니다. AWS STS에 대한 자세한 내용은 AWS Security Token Service API 참조 소개를 참조하세요.

이 시나리오에서 Amazon Cognito를 토큰 공급 업체로 사용하려면 인증 공급자와 함께 작동하도록 Amazon Cognito를 구성할 수 있습니다. 자세한 내용은 Amazon Cognito 자격 증명 풀 시작(페더레이션 자격 증명)을 참조하세요.

자격 증명 공급자와 함께 작동하도록 Amazon Cognito를 구성한 후에는 다음을 수행해야 합니다.

  • 다음 권한을 가진 IAM 역할을 만듭니다. 애플리케이션은 이 역할을 사용하여 AWS에 액세스합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "rum:PutRumEvents", "Resource": "arn:aws:rum:[region]:[accountID]:appmonitor/[app monitor name]" } ] }
  • 애플리케이션에 다음을 추가하여 공급자의 자격 증명을 CloudWatch RUM으로 전달하도록 합니다. 사용자가 애플리케이션에 로그인하고 AWS에 액세스하는 데 사용할 자격 증명을 받은 후 실행되도록 라인을 삽입합니다.

    cwr('setAwsCredentials', {/* Credentials or CredentialProvider */});

AWS JavaScript SDK의 자격 증명 공급자에 대한 자세한 내용은 JavaScript SDK용 v3 개발자 가이드에서 웹 브라우저에서 자격 증명 설정, JavaScript SDK용 v2 개발자 가이드에서 웹 브라우저에서 자격 증명 설정@aws-sdk/credential-providers를 참조하세요.

CloudWatch RUM 웹 클라이언트용 SDK를 사용하여 웹 클라이언트 인증 방법을 구성할 수도 있습니다. 웹 클라이언트 SDK에 대한 자세한 내용은 CloudWatch RUM 웹 클라이언트 SDK를 참조하세요.