通过添加新的 Amazon Identity and Access Management (IAM) 功能,Amazon Trusted Advisor 控制台引入了新的方法来控制对 Trusted Advisor 检查项目的访问。要查看 Trusted Advisor 结果或进行操作(例如刷新检查数据或从结果中排除项目),IAM 用户必须拥有操作权限和以“trustedadvisor”命名空间指定的资源。有关创建策略并将其应用于用户和组的完整信息,请参阅 Amazon Identity and Access Management 文档。
下表显示了 Trusted Advisor 控制台的常见许可场景。
表 1:常见许可场景
访问 |
规范 |
IAM 控制台模板 |
---|---|---|
完整 | "Action": "trustedadvisor:*", "Resource": "*" |
管理员访问 高级用户访问 |
只读 | "Action": "trustedadvisor:Describe*", "Resource": "*" |
只读访问 |
特定检查类别 | "Resource": "arn:aws-cn:trustedadvisor:*:acct:checks/category/*" | 无;查看检查类别 |
特定检查项目 | "Resource": "arn:aws-cn:trustedadvisor:*:acct:checks/category/checkID" | 无;查看特定检查项目 |
特定操作 | "Action": "trustedadvisor:actionName" | 无;查看特定操作 |
Trusted Advisor 显示的信息
Trusted Advisor 会显示与亚马逊云科技账户有关的一些资源的信息。
重要提示:尽管用户在未经过策略特别许可的情况下不能更改这些资源,但是却可以在未获得查看授权的情况下查看信息。例如,一名在查看与 Amazon EC2 实例相关的检查项目的用户可能会看到实例的信息或使用数据,即使另一条策略专门规定了不允许查看此信息。
以下两个表格显示了 Trusted Advisor 显示的信息:
表 2 显示了当前 Trusted Advisor 检查项目的标题、类别、ID 和报告栏。您可以使用类别和检查项目 ID 来指称 IAM 政策中的特定检查项目。
表 3 显示了服务特定操作 (API) 的示例和数据,这些示例和数据与检查项目显示的信息相对应。
尽管下表中罗列的报告栏可以提醒您注意被检查项目公开的信息,但是您依然应该检查您账户的 Trusted Advisor 报告,以保证您充分了解每个检查项目公开的是哪些信息。
表 2:检查类别、ID 和报告栏
检查项目标题 | 类别 | 检查项目 ID | 报告栏 |
---|---|---|---|
Amazon EBS 预设置 IOPS 卷附加配置 | 性能 | PPkZrjsH2q | 区域/可用区 | 卷 ID | 卷名称 | 卷附件 | 实例 ID | 实例类型 | EBS 优化 | 状态 |
Amazon EBS 快照 | 容错 | H7IgTzjTYb | 区域 | 卷 ID | 卷名称 | 快照 ID | 快照名称 | 快照年限 | 卷附件 | 状态 | 原因 |
Amazon EC2 可用区平衡 | 容错 | wuy7G1zxql | 区域 | 区域 a 中的实例 | 区域 b 中的实例 | 区域 c 中的实例 | 区域 d 中的实例 | 区域 e 中的实例 | 状态 | 原因 |
Amazon S3 存储桶记录 | 容错 | BueAdJ7NrP | 区域 | 存储桶名称 | 目标名称 | 目标存在 | 相同所有者 | 写入已开启 | 状态 | 原因 |
Amazon S3 存储桶权限 | 安全性 | Pfx0RwqBli | 区域名称 | 区域 API 参数 | 存储桶名称 | 全球列表访问 | 全球上传/删除访问 | 状态 |
高使用率 Amazon EC2 实例 | 性能 | ZRxQlPsb6c | 区域/可用区 | 实例 ID | 实例名称 | 实例类型 | 第 1 天...第 14 天 | 14 天平均 CPU 利用率 | CPU 利用率超过 90% 的天数 |
应用于实例的大量 EC2 安全组规则 | 性能 | j3DFqYTe29 | 区域 | 实例 ID | 实例名称 | VPC ID | 总入站规则 | 总出站规则 |
EC2 安全组中的大量规则 | 容错 | 容错 tfg86AVHAZ | 区域 | 安全组名称 | 组 ID | 描述 | 实例计数 | VPC ID | 总入站规则 | 总出站规则 |
Load Balancer 优化 | 容错 | iqdCTZKCUp | 区域 | Load Balancer 名称 | 区域数量 | 区域 a 中的实例 | 区域 b 中的实例 | 区域 c 中的实例 | 区域 d 中的实例 | 区域 e 中的实例 | 状态 | 原因 |
过度使用的标准 Amazon EBS 卷 | 性能 | k3J2hns32g | 区域 | 卷 ID | 卷名称 | 第 1 天...第 14 天 | 结束天数 | 最大每日中间值 | 状态 |
安全组 – 特定端口不受限制 | 安全性 | HCP4007jGY | 区域 | 安全组名称 | 安全组 ID | 协议 | 状态 | 端口 |
安全组 – 不受限制的访问 | 安全性 | 1iG5NDGVre | 区域 | 安全组名称 | 安全组 ID | 协议 | 端口 | 状态 | IP 范围 |
无关联的弹性 IP 地址 | 成本优化 | Z4AUBRNSmz | 区域 | IP 地址 |
下表再一次显示了每个检查项目的报告栏,加入了服务特定操作的示例,显示了与 Trusted Advisor 报告栏中所显示数据相对应的数据。注意,Trusted Advisor 不是必须要使用罗列的操作,这些操作只是对显示信息的方法的一种展示。
例如,您拒绝了一名用户对 Amazon EC2 DescribeInstances 操作的访问,但是允许该用户访问 Trusted Advisor 低使用率 EC2 实例检查项目,这名用户可以查看 DescribeInstances 返回的某些信息,尽管对 DescribeInstances 的访问是被明确拒绝的。
表 3:示例操作和数据
检查项目标题 | 报告栏 | 操作 | 数据 |
---|---|---|---|
Amazon EBS 预设置 IOPS 卷附加配置 | 区域/可用区 | 卷 ID | 卷名称 | 卷附件 | 实例 ID | 实例类型 | EBS 优化 | 状态 | ec2:DescribeVolumes | AvailabilityZone VolumeId tag:Name VolumeType AttachmentSet.Item.VolumeId AttachmentSet.Item.InstanceId AttachmentSet.Item.Device |
ec2:DescribeInstanceAttribute | InstanceId EbsOptimized |
||
Amazon EBS 快照 | 区域 | 卷 ID | 卷名称 | 快照 ID | 快照名称 | 快照年限 | 卷附件 | 状态 | 原因 | ec2:DescribeVolumes | VolumeId VolumeType tag:Name |
cloudwatch:GetMetricStatistics | VolumeReadOps VolumeWriteOps |
||
Amazon EC2 可用区平衡 | 区域 | 区域 a 中的实例 | 区域 b 中的实例 | 区域 c 中的实例 | 区域 d 中的实例 | 区域 e 中的实例 | 状态 | 原因 | ec2:DescribeInstances | AvailabilityZone |
Amazon S3 存储桶记录 | 区域 | 存储桶名称 | 目标名称 | 目标存在 | 相同所有者 | 写入已开启 | 状态 | 原因 | s3:GetService | BucketName 所有者 |
s3:GetBucketLogging | TargetName | ||
s3:GetBucketAcl | 被授权者 权限 |
||
Amazon S3 存储桶权限 | 区域名称 | 区域 API 参数 | 存储桶名称 | 全球列表访问 | 全球上传/删除访问 | 状态 | s3:GetService | BucketName 所有者 |
s3:GetBucketAcl | 被授权者 权限 |
||
高使用率 Amazon EC2 实例 | 区域/可用区 | 实例 ID | 实例名称 | 实例类型 | 第 1 天...第 14 天 | 14 天平均 CPU 利用率 | CPU 利用率超过 90% 的天数 | ec2:DescribeInstances | AvailabilityZone InstanceId tag:Name |
cloudwatch:GetMetricStatistics | CPUUtilization NetworkIn NetworkOut |
||
应用于实例的大量 EC2 安全组规则 | 区域 | 实例 ID | 实例名称 | VPC ID | 总入站规则 | 总出站规则 | ec2:DescribeInstances ec2:DescribeGroups |
InstanceId tag:Name VpcId GroupId GroupName |
ec2:DescribeGroups | IpPermissions IpPermissionsEgress |
||
EC2 安全组中的大量规则 | 区域 | 安全组名称 | 组 ID | 描述 | 实例计数 | VPC ID | 总入站规则 | 总出站规则 | ec2:DescribeGroups | GroupName GroupId GroupDescription VpcId IpPermissions IpPermissionsEgress |
ec2:DescribeInstances | GroupId InstanceId |
||
Load Balancer 优化 | 区域 | Load Balancer 名称 | 区域数量 | 区域 a 中的实例 | 区域 b 中的实例 | 区域 c 中的实例 | 区域 d 中的实例 | 区域 e 中的实例 | 状态 | 原因 | elasticloadbalancing: DescribeLoadBalancers | LoadBalancerName AvailabilityZones |
过度使用的标准 Amazon EBS 卷 | 区域 | 卷 ID | 卷名称 | 第 1 天...第 14 天 | 结束天数 | 最大每日中间值 | 状态 | ec2:DescribeVolumes | VolumeId VolumeType tag:Name |
cloudwatch:GetMetricStatistics | VolumeReadOps VolumeWriteOps |
||
安全组 – 特定端口不受限制 | 区域 | 安全组名称 | 安全组 ID | 协议 | 状态 | 端口 | ec2:DescribeSecurityGroups | GroupName GroupId IpPermissions IpProtocol FromPort ToPort |
安全组 – 不受限制的访问 | 区域 | 安全组名称 | 安全组 ID | 协议 | 端口 | 状态 | IP 范围 | ec2:DescribeSecurityGroups | GroupName GroupId IpPermissions IpProtocol FromPort ToPort IpRanges |
服务限制 | 区域 | 服务 | 限制名称 | 限制量 | 当前使用量 | 状态 | [显示限制和多项服务的当前使用量。参见 Trusted Advisor 常见问题中的“您要检查哪些服务限制”了解详细情况。] | [变化] |
无关联的弹性 IP 地址 | 区域 | IP 地址 | ec2:DescribeAddresses | PublicIp InstanceId |
ec2:DescribeInstances | InstanceState |
IAM 策略示例
下面是 IAM 策略的示例,您可能使用这些示例来控制对 Trusted Advisor 控制台的访问。有关如何构建策略的更多信息,请参阅 Amazon Identity and Access Management 用户指南中的“Amazon IAM 策略概览”。
拒绝所有
下方的示例策略会拒绝对所有 Trusted Advisor 检查结果的访问:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "trustedadvisor:*",
"Resource": "*"
}
]
}
允许所有
下方的示例策略允许用户查看所有 Trusted Advisor 检查项目并对其采取一切操作:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "trustedadvisor:*",
"Resource": "*"
}
]
}
检查类别
要在策略中指定 Trusted Advisor 检查项目类别,应以以下形式使用 Amazon 资源名称 (ARN):
arn:aws-cn:trustedadvisor:*:accountnumber:checks/categoryCode/*
要查看检查类别,请参见表 2。下表显示了为每一个类别指定的类别代码。
表 4:类别和类别代码
类别 | 类别代码 |
---|---|
成本优化 | cost_optimizing |
性能 | 性能 |
安全性 | 安全性 |
容错 | fault_tolerance |
下方的示例策略通过指定类别代码允许用户在容错和性能类别中查看检查项目并对其执行其他操作:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "trustedadvisor:*",
"Resource": ["arn:aws-cn:trustedadvisor:*:123456789012:checks/fault_tolerance/*", "arn:aws-cn:trustedadvisor:*:123456789012:checks/performance/*"]
}
]
}
特定检查项目
要在策略中允许或拒绝对特定 Trusted Advisor 检查项目的许可,应以此形式使用 Amazon 资源名称 (ARN):
arn:aws-cn:trustedadvisor:*:accountnumber:checks/categoryCode/checkId
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "trustedadvisor:*",
"Resource": [
"arn:aws:trustedadvisor:*:123456789012:checks/fault_tolerance/BueAdJ7NrP",
"arn:aws:trustedadvisor:*:123456789012:checks/security/Pfx0RwqBli"
]
}
]
}
特定操作
您可以控制想让用户看到的信息量,还可以控制刷新检查项目的能力,以排除或包含检查结果中的项目,查看和修改通知偏好设置。
要允许或拒绝策略中对特定 Trusted Advisor 操作的使用,应在操作的前面加上“trustedadvisor:”命名空间前缀。
下表显示了您可以指定的操作和拒绝对操作给予许可的结果。
表 5:Trusted Advisor 操作
操作 | 拒绝后的效果 |
---|---|
DescribeCheckResult | 不能查看任何 Trusted Advisor 信息。 对通知偏好设置的查看和更改受到单独控制。 |
DescribeCheckItems | 不能查看详细信息(结果表中的项目)。 |
RefreshCheck | 不能刷新检查项目。也不能更改项目的排除或包含状态,因为项目状态的更改必须要刷新检查项目。 |
ExcludeCheckItems | 不能将项目的状态从包含改为排除。 可能可以将项目从排除改为包含,这取决于 IncludeCheckItems 的权限。 |
IncludeCheckItems | 不能将项目的状态从排除改为包含。 可能可以将项目从包含改为排除,这取决于 ExcludeCheckItems 的权限。 |
DescribeNotificationPreferences | 不能查看通知偏好设置页面中的信息。 |
UpdateNotificationPreferences | 不能更改通知偏好设置页面中的选项。 |
下方的示例策略允许用户查看所有 Trusted Advisor 检查项目,但是不允许用户刷新任何检查项目:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "trustedadvisor:*",
"Resource": [
"arn:aws-cn:trustedadvisor:*:123456789012:checks/fault_tolerance/BueAdJ7NrP",
"arn:aws-cn:trustedadvisor:*:123456789012:checks/security/Pfx0RwqBli"
]
}
]
}
有关如何构建策略的更多信息,请参阅 Amazon Identity and Access Management 用户指南中的 Amazon IAM 策略概览。