将服务相关角色用于 AWS Audit Manager - Amazon Audit Manager

将服务相关角色用于 AWS Audit Manager

AWS Audit Manager 使用 AWS Identity and Access Management(IAM)服务相关角色。服务相关角色是一种与 Audit Manager 直接关联的独特类型的 IAM 角色。服务相关角色由 Audit Manager 预定义,并包含该服务代表您调用其它 AWS 服务所需的一切权限。

服务相关角色可让您更轻松地设置 AWS Audit Manager,因为您不必手动添加必要的权限。Audit Manager 定义其服务相关角色的权限,除非另外定义,否则只有 Audit Manager 可以代入该角色。定义的权限包括信任策略和权限策略,而且权限策略不能附加到任何其它 IAM 实体。

有关支持服务相关角色的其他服务的信息,请参阅可与 IAM 搭配使用的 AWS 服务,并查找 Service-Linked Role(服务相关角色)列中为 Yes(是)的服务。选择和链接,查看该服务的服务相关角色文档。

AWS Audit Manager 的服务相关角色权限

Audit Manager 使用名为 AWSServiceRoleForAuditManager 的服务相关角色,该角色支持访问由 AWS Audit Manager 使用或管理的 AWS 服务和资源。

AWSServiceRoleForAuditManager 服务相关角色信任 auditmanager.amazonaws.com 服务来代入角色。

角色权限策略 AWSAuditManagerServiceRolePolicy 允许 Audit Manager 自动收集有关您的 AWS 使用情况的证据。更具体地说,它可以代表您执行以下操作。

  • Audit Manager 可以使用 AWS Security Hub 来收集合规性检查证据。在这种情况下,Audit Manager 使用以下权限直接从 AWS Security Hub 中报告安全检查结果。然后,它将结果作为证据附加到您的相关评测控件中。

    • securityhub:DescribeStandards

    注意

    有关 Audit Manager 可以描述哪些特定 Security Hub 控件的更多信息,请参阅 AWS Audit Manager 支持的 AWS Security Hub 控件

  • Audit Manager 可以使用 AWS Config 来收集合规性检查证据。在这种情况下,Audit Manager 使用以下权限直接从 AWS Config 中报告 AWS Config 规则评测结果。然后,它将结果作为证据附加到您的相关评测控件中。

    • config:DescribeConfigRules

    • config:DescribeDeliveryChannels

    • config:ListDiscoveredResources

    注意

    有关 Audit Manager 可以描述哪些特定 AWS Config 规则的更多信息,请参阅 AWS Audit Manager 支持的 AWS Config 规则

  • Audit Manager 可以使用 AWS CloudTrail 来收集用户活动证据。在这种情况下,Audit Manager 使用以下权限从 CloudTrail 日志中捕获用户活动。然后,它将该活动作为证据附加到您的相关评测控件中。

    • cloudtrail:DescribeTrails

    • cloudtrail:LookupEvents

    注意

    有关 Audit Manager 可以描述哪些特定 CloudTrail 事件的更多信息,请参阅 AWS Audit Manager 支持的 AWS CloudTrail 事件名称

  • Audit Manager 可以使用 AWS API 调用来收集资源配置证据。在这种情况下,Audit Manager 使用以下权限为以下 AWS 服务 调用描述资源配置的只读 API。然后,它会将 API 响应作为证据附加到您的相关评测控件中。

    • acm:GetAccountConfiguration

    • acm:ListCertificates

    • apigateway:GET

    • autoscaling:DescribeAutoScalingGroups

    • backup:ListBackupPlans

    • backup:ListRecoveryPointsByResource

    • bedrock:GetCustomModel

    • bedrock:GetFoundationModel

    • bedrock:GetModelCustomizationJob

    • bedrock:GetModelInvocationLoggingConfiguration

    • bedrock:ListCustomModels

    • bedrock:ListFoundationModels

    • bedrock:ListGuardrails

    • bedrock:ListModelCustomizationJobs

    • cloudfront:GetDistribution

    • cloudfront:GetDistributionConfig

    • cloudfront:ListDistributions

    • cloudtrail:DescribeTrails

    • cloudtrail:GetTrail

    • cloudtrail:ListTrails

    • cloudtrail:LookupEvents

    • cloudwatch:DescribeAlarms

    • cloudwatch:DescribeAlarmsForMetric

    • cloudwatch:GetMetricStatistics

    • cloudwatch:ListMetrics

    • cognito-idp:DescribeUserPool

    • config:DescribeConfigRules

    • config:DescribeDeliveryChannels

    • config:ListDiscoveredResources

    • directconnect:DescribeDirectConnectGateways

    • directconnect:DescribeVirtualGateways

    • dynamodb:DescribeBackup

    • dynamodb:DescribeContinuousBackups

    • dynamodb:DescribeTable

    • dynamodb:DescribeTableReplicaAutoScaling

    • dynamodb:ListBackups

    • dynamodb:ListGlobalTables

    • dynamodb:ListTables

    • ec2:DescribeAddresses

    • ec2:DescribeCustomerGateways

    • ec2:DescribeEgressOnlyInternetGateways

    • ec2:DescribeFlowLogs

    • ec2:DescribeInstanceCreditSpecifications

    • ec2:DescribeInstanceAttribute

    • ec2:DescribeInstances

    • ec2:DescribeInternetGateways

    • ec2:DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations

    • ec2:DescribeLocalGateways

    • ec2:DescribeLocalGatewayVirtualInterfaces

    • ec2:DescribeNatGateways

    • ec2:DescribeNetworkAcls

    • ec2:DescribeRouteTables

    • ec2:DescribeSecurityGroups

    • ec2:DescribeSecurityGroupRules

    • ec2:DescribeSnapshots

    • ec2:DescribeTransitGateways

    • ec2:DescribeVolumes

    • ec2:DescribeVpcEndpoints

    • ec2:DescribeVpcEndpointConnections

    • ec2:DescribeVpcEndpointServiceConfigurations

    • ec2:DescribeVpcPeeringConnections

    • ec2:DescribeVpcs

    • ec2:DescribeVpnConnections

    • ec2:DescribeVpnGateways

    • ec2:GetEbsDefaultKmsKeyId

    • ec2:GetEbsEncryptionByDefault

    • ec2:GetLaunchTemplateData

    • ecs:DescribeClusters

    • eks:DescribeAddonVersions

    • elasticache:DescribeCacheClusters

    • elasticache:DescribeServiceUpdates

    • elasticfilesystem:DescribeAccessPoints

    • elasticfilesystem:DescribeFileSystems

    • elasticloadbalancing:DescribeLoadBalancers

    • elasticloadbalancing:DescribeSslPolicies

    • elasticloadbalancing:DescribeTargetGroups

    • elasticmapreduce:ListClusters

    • elasticmapreduce:ListSecurityConfigurations

    • es:DescribeDomains

    • es:DescribeDomain

    • es:DescribeDomainConfig

    • es:ListDomainNames

    • events:DeleteRule

    • events:DescribeRule

    • events:DisableRule

    • events:EnableRule

    • events:ListConnections

    • events:ListEventBuses

    • events:ListEventSources

    • events:ListRules

    • events:ListTargetsByRule

    • events:PutRule

    • events:PutTargets

    • events:RemoveTargets

    • firehose:ListDeliveryStreams

    • fsx:DescribeFileSystems

    • guardduty:ListDetectors

    • iam:GenerateCredentialReport

    • iam:GetAccessKeyLastUsed

    • iam:GetAccountAuthorizationDetails

    • iam:GetAccountPasswordPolicy

    • iam:GetAccountSummary

    • iam:GetCredentialReport

    • iam:GetGroupPolicy

    • iam:GetPolicy

    • iam:GetPolicyVersion

    • iam:GetRolePolicy

    • iam:GetUser

    • iam:GetUserPolicy

    • iam:ListAccessKeys

    • iam:ListAttachedGroupPolicies

    • iam:ListAttachedRolePolicies

    • iam:ListAttachedUserPolicies

    • iam:ListEntitiesForPolicy

    • iam:ListGroupPolicies

    • iam:ListGroups

    • iam:ListGroupsForUser

    • iam:ListMfaDeviceTags

    • iam:ListMfaDevices

    • iam:ListOpenIdConnectProviders

    • iam:ListPolicies

    • iam:ListPolicyVersions

    • iam:ListRolePolicies

    • iam:ListRoles

    • iam:ListSamlProviders

    • iam:ListUserPolicies

    • iam:ListUsers

    • iam:ListVirtualMFADevices

    • kafka:ListClusters

    • kafka:ListKafkaVersions

    • kinesis:ListStreams

    • kms:DescribeKey

    • kms:GetKeyPolicy

    • kms:GetKeyRotationStatus

    • kms:ListGrants

    • kms:ListKeyPolicies

    • kms:ListKeys

    • lambda:ListFunctions

    • license-manager:ListAssociationsForLicenseConfiguration

    • license-manager:ListLicenseConfigurations

    • license-manager:ListUsageForLicenseConfiguration

    • logs:DescribeDestinations

    • logs:DescribeExportTasks

    • logs:DescribeLogGroups

    • logs:DescribeMetricFilters

    • logs:DescribeResourcePolicies

    • logs:FilterLogEvents

    • logs:GetDataProtectionPolicy

    • organizations:DescribeOrganization

    • organizations:DescribePolicy

    • rds:DescribeCertificates

    • rds:DescribeDBClusterEndpoints

    • rds:DescribeDBClusterParameterGroups

    • rds:DescribeDBClusters

    • rds:DescribeDBInstances

    • rds:DescribeDBInstanceAutomatedBackups

    • rds:DescribeDBSecurityGroups

    • redshift:DescribeClusters

    • redshift:DescribeClusterSnapshots

    • redshift:DescribeLoggingStatus

    • route53:GetQueryLoggingConfig

    • s3:GetBucketAcl

    • s3:GetBucketLogging

    • s3:GetBucketOwnershipControls

    • s3:GetBucketPolicy

      • 此 API 操作在 AWS 账户 的范围内运行,可以使用服务相关角色。但无法访问跨账户存储桶策略。

    • s3:GetBucketPublicAccessBlock

    • s3:GetBucketTagging

    • s3:GetBucketVersioning

    • s3:GetEncryptionConfiguration

    • s3:GetLifecycleConfiguration

    • s3:ListAllMyBuckets

    • sagemaker:DescribeAlgorithm

    • sagemaker:DescribeDomain

    • sagemaker:DescribeEndpoint

    • sagemaker:DescribeEndpointConfig

    • sagemaker:DescribeFlowDefinition

    • sagemaker:DescribeHumanTaskUi

    • sagemaker:DescribeLabelingJob

    • sagemaker:DescribeModel

    • sagemaker:DescribeModelBiasJobDefinition

    • sagemaker:DescribeModelCard

    • sagemaker:DescribeModelQualityJobDefinition

    • sagemaker:DescribeTrainingJob

    • sagemaker:DescribeUserProfile

    • sagemaker:ListAlgorithms

    • sagemaker:ListDomains

    • sagemaker:ListEndpointConfigs

    • sagemaker:ListEndpoints

    • sagemaker:ListFlowDefinitions

    • sagemaker:ListHumanTaskUis

    • sagemaker:ListLabelingJobs

    • sagemaker:ListModels

    • sagemaker:ListModelBiasJobDefinitions

    • sagemaker:ListModelCards

    • sagemaker:ListModelQualityJobDefinitions

    • sagemaker:ListMonitoringAlerts

    • sagemaker:ListMonitoringSchedules

    • sagemaker:ListTrainingJobs

    • sagemaker:ListUserProfiles

    • securityhub:DescribeStandards

    • secretsmanager:DescribeSecret

    • secretsmanager:ListSecrets

    • sns:ListTagsForResource

    • sns:ListTopics

    • sqs:ListQueues

    • waf-regional:GetLoggingConfiguration

    • waf-regional:GetRule

    • waf-regional:GetWebAcl

    • waf-regional:ListRuleGroups

    • waf-regional:ListRules

    • waf-regional:ListSubscribedRuleGroups

    • waf-regional:ListWebACLs

    • waf:GetRule

    • waf:GetRuleGroup

    • waf:ListActivatedRulesInRuleGroup

    • waf:ListRuleGroups

    • waf:ListRules

    • waf:ListWebAcls

    • wafv2:ListWebAcls

    注意

    有关 Audit Manager 可以描述的特定 API 调用的更多信息,请参阅 支持自定义控件数据来源的 API 调用

要查看服务相关角色 AWSServiceRoleForAuditManager 的完整权限详细信息,请参阅 AWS 托管式策略参考指南中的 AWSAuditManagerServiceRolePolicy

您必须配置权限,允许 IAM 实体(如用户、组或角色)创建、编辑或删除服务相关角色。有关更多信息,请参阅《IAM 用户指南》中的服务相关角色权限

创建 AWS Audit Manager 服务相关角色

您无需手动创建服务相关角色。在您启用 AWS Audit Manager 时,该服务会自动为您创建服务相关角色。您可以从 AWS Management Console 的注册页面启用 Audit Manager,也可以通过 API 或 AWS CLI 启用。有关更多信息,请参阅本用户指南中的 启用 AWS Audit Manager

如果您删除该服务相关角色,然后需要再次创建,您可以使用相同流程在账户中重新创建此角色。

编辑 AWS Audit Manager 服务相关角色

AWS Audit Manager 不允许您编辑 AWSServiceRoleForAuditManager 服务相关角色。在创建服务相关角色后,您将无法更改角色的名称,因为可能有多种实体引用该角色。不过,您可以使用 IAM 编辑角色的说明。有关更多信息,请参阅《IAM 用户指南》中的编辑服务相关角色

允许 IAM 实体编辑 AWSServiceRoleForAuditManager 服务相关角色的描述

将以下语句添加到需要编辑服务相关角色的描述的 IAM 实体的权限策略。

{ "Effect": "Allow", "Action": [ "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/aws-service-role/auditmanager.amazonaws.com/AWSServiceRoleForAuditManager*", "Condition": {"StringLike": {"iam:AWSServiceName": "auditmanager.amazonaws.com"}} }

删除 AWS Audit Manager 服务相关角色

如果您不再使用 Audit Manager,我们建议您删除 AWSServiceRoleForAuditManager 服务相关角色。这样您就没有未被主动监控或维护的未使用实体。但是,您必须先清除服务相关角色,然后才能将其删除。

清除 服务相关角色

必须先确认服务相关角色没有活动会话并移除该角色使用的任何资源,然后才能使用 IAM 删除 Audit Manager 服务相关角色。为此,请确保在所有 AWS 区域 中取消注册 Audit Manager。取消注册后,Audit Manager 将不再使用服务相关角色。

有关如何取消注册 Audit Manager 的说明,请参阅以下资源:

有关如何手动删除 Audit Manager 资源的说明,请参阅本指南中的删除 Audit Manager 数据

删除 服务相关角色

您可以使用 IAM 控制台、AWS Command Line Interface (AWS CLI) 或 IAM API 删除服务相关角色。

IAM console

请按照以下步骤在 IAM 控制台中删除服务相关角色。

删除服务相关角色(控制台)
  1. 登录 AWS Management Console,打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在 IAM 控制台的导航窗格中,选择角色。然后选中 AWSServiceRoleForAuditManager 旁边的复选框,而不是选择名称或行本身。

  3. 在页面顶部的角色操作下方,选择删除

  4. 在确认对话框中,查看上次访问的信息,该信息显示每个选定角色上次访问 AWS 服务的时间。这样可帮助您确认角色当前是否处于活动状态。如果要继续,请在文本输入字段中输入 AWSServiceRoleForAuditManager,然后选择删除以提交服务相关角色进行删除。

  5. 监视 IAM 控制台通知,以监控服务相关角色的删除进度。由于 IAM 服务相关角色删除是异步的,因此,在您提交角色进行删除后,删除任务可能成功,也可能失败。如果任务成功,则角色将从列表中移除,并会在页面顶部显示成功消息。

AWS CLI

您可以从 AWS CLI 使用 IAM 命令删除服务相关角色。

删除服务相关角色 (AWS CLI)
  1. 输入以下命令以列出您账户中的角色:

    aws iam get-role --role-name AWSServiceRoleForAuditManager
  2. 如果服务相关角色正被使用或具有关联的资源,则无法删除它,因此您必须提交删除请求。如果不满足这些条件,该请求可能会被拒绝。您必须从响应中捕获 deletion-task-id 以检查删除任务的状态。

    键入以下命令以提交服务相关角色的删除请求:

    aws iam delete-service-linked-role --role-name AWSServiceRoleForAuditManager
  3. 使用以下命令以检查删除任务的状态:

    aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

    删除任务的状态可能是 NOT_STARTEDIN_PROGRESSSUCCEEDEDFAILED。如果删除失败,则调用会返回失败的原因,以便您进行问题排查。

IAM API

您可以使用 IAM API 删除服务相关角色。

删除服务相关角色(API)
  1. 调用 GetRole 以列出您账户中的角色。在请求中,指定 AWSServiceRoleForAuditManager 作为 RoleName

  2. 如果服务相关角色正被使用或具有关联的资源,则无法删除它,因此您必须提交删除请求。如果不满足这些条件,该请求可能会被拒绝。您必须从响应中捕获 DeletionTaskId 以检查删除任务的状态。

    要提交服务相关角色的删除请求,请调用 DeleteServiceLinkedRole。在请求中,指定 AWSServiceRoleForAuditManager 作为 RoleName

  3. 要检查删除的状态,请调用 GetServiceLinkedRoleDeletionStatus。在请求中,指定 DeletionTaskId

    删除任务的状态可能是 NOT_STARTEDIN_PROGRESSSUCCEEDEDFAILED。如果删除失败,则调用会返回失败的原因,以便您进行问题排查。

删除 Audit Manager 服务相关角色的提示

如果 Audit Manager 正在使用服务相关角色或具有关联的资源,则该角色的删除过程可能会失败。这种情况会发生在以下场景中:

  1. 您的账户仍在一个或多个 AWS 区域注册了 Audit Manager。

  2. 您的账户属于 AWS 组织,管理账户或委派管理员账户仍然注册了 Audit Manager。

要解决删除失败的问题,请先检查您的 AWS 账户是否属于组织。您可以通过调用 DescribeOrganization API 操作或导航到 AWS Organizations 控制台来执行此操作。

如果您的 AWS 账户属于组织
  1. 在您添加过委派管理员的所有 AWS 区域中,使用管理帐户在 Audit Manager 中删除委派管理员

  2. 在您使用了这项服务的所有 AWS 区域中,使用管理帐户注销 Audit Manager

  3. 请按照之前程序中的步骤重新尝试删除服务相关角色。

如果您的 AWS 账户不属于组织
  1. 确保您已在使用了这项服务的所有 AWS 区域中,注销 Audit Manager

  2. 请按照之前程序中的步骤重新尝试删除服务相关角色。

从 Audit Manager 注销后,该服务将停止使用服务相关角色。然后,您可以成功删除该角色。

AWS Audit Manager 服务相关角色的受支持区域

AWS Audit Manager 支持在该服务可用的所有 AWS 区域中使用服务相关角色。有关更多信息,请参阅AWS服务端点