

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 授權您的 Web 應用程式將資料傳送至 AWS
<a name="CloudWatch-RUM-get-started-authorization"></a>

有四個設定資料身分驗證的選項：
+ 使用 Amazon Cognito，讓 CloudWatch RUM 為應用程式建立新的 Amazon Cognito 身分池。這個方法需要最少的設定工作。

  身分集區將包含未進行身分驗證的身分。這可讓 CloudWatch RUM Web 用戶端將資料傳送至 CloudWatch RUM，而無需對應用程式的使用者進行身分驗證。

  Amazon Cognito 身分集區具有連接的 IAM 角色。Amazon Cognito 未進行身分驗證的身分可讓 Web 用戶端擔任授權將資料傳送到 CloudWatch RUM 的 IAM 角色。
+ 使用 Amazon Cognito 進行身分驗證。如果您使用此功能，則可以使用現有的 Amazon Cognito 身分池，或建立新的身分集區以搭配此應用程式監視器使用。如果您使用現有的身分池，還必須修改連結至身分集區的 IAM 角色。針對支援未驗證使用者的身分池使用此選項。您只能從相同的區域使用身分池。
+ 使用您已經設定的現有身分提供者所提供的身分驗證。在此情況下，您必須從身分提供者取得憑證，且您的應用程式必須將這些憑證轉寄至 RUM Web 用戶端。

  對於僅支援已驗證使用者的身分池，請使用此選項。
+ 使用資源型政策來管理應用程式監視器的存取權。這包括在沒有 AWS 憑證的情況下，將未經驗證的請求傳送至 CloudWatch RUM 的功能。如需了解資源型政策和 RUM 的詳細資訊，請參閱 [搭配資源型政策使用 CloudWatch RUM](CloudWatch-RUM-resource-policies.md)。

以下章節更會詳細探討這些選項。

## 使用現有 Amazon Cognito 身分集區
<a name="CloudWatch-RUM-get-started-authorization-existingcognito"></a>

如果您選擇使用 Amazon Cognito 身分池，則請在將應用程式新增至 CloudWatch RUM 時指定身分集區。集區必須支援啟用對未經身分驗證之身分的存取權。您只能從相同的區域使用身分池。

您也必須將下列許可新增到連接至與此身分集區相關聯之 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。最好的方法是使用*安全字符廠商*。您可以使用任何安全字符廠商，包括 Amazon Cognito AWS Security Token Service。如需 的詳細資訊 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 的 v3 開發人員指南中的在 [Web 瀏覽器中設定登入](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-browser.html)資料、適用於 JavaScript 的 SDK 的 v2 開發人員指南中的在 [Web 瀏覽器中設定登入資料](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 Web 用戶端的 SDK 來設定 Web 用戶端身分驗證方法。如需有關 Web 用戶端 SDK 的詳細資訊，請參閱 [CloudWatch RUM Web 用戶端 SDK](https://github.com/aws-observability/aws-rum-web)。