

# 웹 애플리케이션에서 데이터를 AWS로 전송하도록 권한 부여
<a name="CloudWatch-RUM-get-started-authorization"></a>

데이터 인증을 설정하는 4가지 옵션이 있습니다.
+ Amazon Cognito를 사용하고 CloudWatch RUM에서 애플리케이션에 대한 새 Amazon Cognito ID 풀을 생성할 수 있습니다. 이 방법은 설정하는 데 최소한의 노력이 필요합니다.

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

  Amazon Cognito 자격 증명 풀에는 연결된 IAM 역할이 있습니다. Amazon Cognito 인증되지 않은 자격 증명을 사용하면 웹 클라이언트가 CloudWatch RUM에 데이터를 전송할 수 있는 권한이 부여된 IAM 역할을 맡을 수 있습니다.
+ 인증에 Amazon Cognito를 사용합니다. 이를 사용하는 경우 기존 Amazon Cognito ID 풀을 사용하거나 이 앱 모니터와 함께 사용할 새 ID 풀을 생성할 수 있습니다. 기존 ID 풀을 사용하는 경우 ID 풀에 연결된 IAM 역할도 수정해야 합니다. 인증되지 않은 사용자를 지원하는 자격 증명 풀에 이 옵션을 사용합니다. 동일한 리전의 자격 증명 풀만 사용할 수 있습니다.
+ 이미 설정한 기존 자격 증명 공급자의 인증을 사용합니다. 이 경우 자격 증명 공급자로부터 자격 증명을 가져와야 하며 애플리케이션은 이러한 자격 증명을 RUM 웹 클라이언트에 전달해야 합니다.

  인증된 사용자만 지원하는 자격 증명 풀에 이 옵션을 사용합니다.
+ 리소스 기반 정책을 사용하여 앱 모니터에 대한 액세스를 관리합니다. 여기에는 AWS 자격 증명 없이 인증되지 않은 요청을 CloudWatch RUM으로 보내는 기능이 포함됩니다. 리소스 기반 정책에 대해 자세히 알아보려면 [CloudWatch RUM에서 리소스 기반 정책 사용](CloudWatch-RUM-resource-policies.md) 단원을 참조하세요.

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

## 기존 Amazon Cognito 자격 증명 풀을 사용
<a name="CloudWatch-RUM-get-started-authorization-existingcognito"></a>

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

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        { 
            "Effect": "Allow",
            "Action": [
                "rum:PutRumEvents"
            ],
            "Resource": "arn:aws:rum:us-east-1:123456789012:appmonitor/app monitor name" 
        }
    ]
}
```

------

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

## 서드 파티 공급자
<a name="CloudWatch-RUM-get-started-authorization-thirdparty"></a>

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

이 시나리오에서 Amazon Cognito를 토큰 공급 업체로 사용하려면 인증 공급자와 함께 작동하도록 Amazon Cognito를 구성할 수 있습니다. 자세한 내용은 [Amazon Cognito 자격 증명 풀 시작(페더레이션 자격 증명)](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html)을 참조하세요.

자격 증명 공급자와 함께 작동하도록 Amazon Cognito를 구성한 후에는 다음을 수행해야 합니다.
+ 다음 권한을 가진 IAM 역할을 만듭니다. 애플리케이션은 이 역할을 사용하여 AWS에 액세스합니다.

------
#### [ JSON ]

****  

  ```
  { 
   "Version":"2012-10-17",		 	 	 
   "Statement": [ 
     { 
       "Effect": "Allow",
       "Action": "rum:PutRumEvents",
       "Resource": "arn:aws:rum:us-east-2:123456789012:appmonitor/AppMonitorName"
     }
   ]
  }
  ```

------
+ 애플리케이션에 다음을 추가하여 공급자의 자격 증명을 CloudWatch RUM으로 전달하도록 합니다. 사용자가 애플리케이션에 로그인하고 AWS에 액세스하는 데 사용할 자격 증명을 받은 후 실행되도록 라인을 삽입합니다.

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

AWS JavaScript SDK의 자격 증명 공급자에 대한 자세한 내용은 JavaScript SDK용 v3 개발자 가이드에서 [웹 브라우저에서 자격 증명 설정](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-browser.html), JavaScript SDK용 v2 개발자 가이드에서 [웹 브라우저에서 자격 증명 설정](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-browser.html) 및 [@aws-sdk/credential-providers](https://www.npmjs.com/package/@aws-sdk/credential-providers)를 참조하세요.

CloudWatch RUM 웹 클라이언트용 SDK를 사용하여 웹 클라이언트 인증 방법을 구성할 수도 있습니다. 웹 클라이언트 SDK에 대한 자세한 내용은 [CloudWatch RUM 웹 클라이언트 SDK](https://github.com/aws-observability/aws-rum-web)를 참조하세요.