

# 访问 CloudWatch Application Insights 所需的先决条件、IAM 策略和权限
<a name="appinsights-accessing"></a>

要开始使用 CloudWatch Application Insights，请验证您已满足以下先决条件、已创建 IAM 策略并已连接权限（如果需要）。

**Topics**
+ [配置应用程序进行监控的先决条件](appinsights-prereqs.md)
+ [CloudWatch Application Insights 的 IAM 策略](appinsights-iam.md)
+ [基于账户的应用程序载入的 IAM 角色权限](appinsights-account-based-onboarding-permissions.md)

# 配置应用程序进行监控的先决条件
<a name="appinsights-prereqs"></a>

您必须完成以下必需任务才能使用 CloudWatch Application Insights 配置应用程序：
+ **AWS Systems Manager 启用** – 在 Amazon EC2 实例上安装 Systems Manager Agent（SSM Agent），并启用 SSM 实例。有关如何安装 SSM Agent 的信息，请参阅《AWS Systems Manager 用户指南》中的[设置 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html)**。
+ **EC2 实例角色** – 您必须附加以下 Amazon EC2 实例角色，才能启用 Systems Manager
  + 要启用 Systems Manager，您必须附加 `AmazonSSMManagedInstanceCore` 角色。有关更多信息，请参阅 [AWS Systems Manager 基于身份的策略示例](https://docs.aws.amazon.com/systems-manager/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html)。
  + 要使实例指标和日志通过 CloudWatch 发出，您必须附加 `CloudWatchAgentServerPolicy` 策略。有关更多信息，请参阅[创建用于 CloudWatch 代理的 IAM 角色和用户](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html)
+ **AWS Resource Groups** – 要将应用程序添加到 CloudWatch Application Insights，请创建一个包含应用程序堆栈所用的所有相关 AWS 资源的资源组。这包括应用程序负载均衡器、运行 IIS 和 Web 前端的 Amazon EC2 实例、.NET 工作线程层和 SQL Server 数据库。有关 Application Insights 支持的应用程序组件和技术堆栈的更多信息，请参阅 [支持的应用程序组件](appinsights-what-is.md#appinsights-components)。CloudWatch Application Insights 自动包含使用与资源组相同的标签或 CloudFormation 堆栈的自动扩缩组，因为 CloudFormation 资源组不支持自动扩缩组。有关更多信息，请参阅 [AWS Resource Groups 入门](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted.html)。
+ **IAM 权限** – 对于没有管理访问权限的用户，必须创建允许 Application Insights 创建服务相关角色的 AWS Identity and Access Management（IAM）policy，并将其附加到用户身份。有关如何创建 IAM policy 的更多信息，请参阅 [CloudWatch Application Insights 的 IAM 策略](appinsights-iam.md)。
+ **服务相关角色** – Application Insights 使用 AWS Identity and Access Management（IAM）服务相关角色。当您在 Application Insights 控制台中创建首个 Application Insights 应用程序时，将会为您创建服务相关角色。有关更多信息，请参阅 [在 CloudWatch Application Insights 中使用服务相关角色](CHAP_using-service-linked-roles-appinsights.md)。
+ **EC2 Windows 实例对性能计数器指标的支持** – 要在 Amazon EC2 Windows 实例上监控性能计数器指标，必须在实例上安装性能计数器。有关性能计数器指标和相应的性能计数器集名称，请参阅[性能计数器指标](application-insights-performance-counter.md)。有关性能计数器的更多信息，请参阅[性能计数器](https://docs.microsoft.com/en-us/windows/win32/perfctrs/performance-counters-portal)。
+ **Amazon CloudWatch 代理** – Application Insights 安装和配置 CloudWatch 代理。如果您安装了 CloudWatch 代理，则 Application Insights 会保留您的配置。为避免合并冲突，请从现有 CloudWatch 代理配置文件中删除您想在 Application Insights 中使用的资源的配置。有关更多信息，请参阅 [手动创建或编辑 CloudWatch 代理配置文件](CloudWatch-Agent-Configuration-File-Details.md)。

# CloudWatch Application Insights 的 IAM 策略
<a name="appinsights-iam"></a>

要使用 CloudWatch Application Insights，您必须创建一个 [AWS Identity and Access Management（IAM）policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)，并将其附加到您的用户、组或角色。有关用户、组和角色的更多信息，请参阅 [IAM 身份（用户、用户组和角色）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)。IAM policy 定义了用户权限。

**使用控制台创建 IAM policy**  
要使用 IAM 控制台创建 IAM policy，请执行以下步骤。

1. 转到 [IAM 控制台](https://console.aws.amazon.com/iam/home)。在左侧导航窗格中，选择**策略**。

1. 在页面顶部，选择**创建策略**。

1. 选择 **JSON** 选项卡。

1. 在 **JSON** 选项卡下面复制并粘贴以下 JSON 文档。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "applicationinsights:*",
                   "iam:CreateServiceLinkedRole",
                   "iam:ListRoles",
                   "resource-groups:ListGroups"
               ],
               "Effect": "Allow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 选择**查看策略**。

1. 输入策略的**名称**，例如“AppInsightsPolicy”。（可选）输入**描述**。

1. 选择 **Create Policy (创建策略)**。

1. 在左侧的导航窗格中，选择**用户组**、**用户**或**角色**。

1. 选择要附加策略的用户组、用户或角色的名称。

1. 选择**添加权限**。

1. 选择 **Attach existing policies directly**（直接附加现有策略）。

1. 搜索刚创建的策略，然后选中策略名称左侧的复选框。

1. 选择**下一步: 审核**。

1. 确保列出了正确的策略，然后选择**添加权限**。

1. 在使用 CloudWatch Application Insights 时，请确保使用与刚创建的策略关联的用户登录。

**使用 AWS CLI 创建 IAM policy**  
要使用 AWS CLI 创建 IAM policy，请使用上面的 JSON 文档作为当前文件夹中的文件，从命令行运行 [create-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html) 操作。

**使用 AWS Tools for Windows PowerShell 创建 IAM policy**  
要使用 AWS Tools for Windows PowerShell 创建 IAM policy，请使用上面的 JSON 文档作为当前文件夹中的文件，运行 [New-IAMPolicy](https://docs.aws.amazon.com/powershell/latest/reference/items/New-IAMPolicy.html) cmdlt。

# 基于账户的应用程序载入的 IAM 角色权限
<a name="appinsights-account-based-onboarding-permissions"></a>

如果您想载入账户中的所有资源，并选择不使用 [Application Insights 托管式策略](security-iam-awsmanpol-appinsights.md)来完全访问 Application Insights 功能，则必须向 IAM 角色附加以下权限，以便 Application Insights 可以发现您账户中的所有资源：

```
"ec2:DescribeInstances" 
"ec2:DescribeNatGateways"
"ec2:DescribeVolumes"
"ec2:DescribeVPCs"
"rds:DescribeDBInstances"
"rds:DescribeDBClusters"
"sqs:ListQueues"
"elasticloadbalancing:DescribeLoadBalancers"
"autoscaling:DescribeAutoScalingGroups"
"lambda:ListFunctions"
"dynamodb:ListTables"
"s3:ListAllMyBuckets"
"sns:ListTopics"
"states:ListStateMachines"
"apigateway:GET"
"ecs:ListClusters"
"ecs:DescribeTaskDefinition" 
"ecs:ListServices"
"ecs:ListTasks"
"eks:ListClusters"
"eks:ListNodegroups"
"fsx:DescribeFileSystems"
"route53:ListHealthChecks"
"route53:ListHostedZones"
"route53:ListQueryLoggingConfigs"
"route53resolver:ListFirewallRuleGroups"
"route53resolver:ListFirewallRuleGroupAssociations"
"route53resolver:ListResolverEndpoints"
"route53resolver:ListResolverQueryLogConfigs"
"route53resolver:ListResolverQueryLogConfigAssociations"
"logs:DescribeLogGroups"
"resource-explorer:ListResources"
```