本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基于身份的策略示例 AWS Audit Manager
默认情况下,用户和角色没有创建或修改 Audit Manager 资源的权限。他们也无法使用 AWS Management Console、 AWS Command Line Interface (AWS CLI) 或来执行任务 AWS API。要授予用户对其所需资源执行操作的权限,IAM管理员可以创建IAM策略。然后,管理员可以将IAM策略添加到角色中,用户可以代入这些角色。
要了解如何使用这些示例策略文档创建IAM基于身份的JSON策略,请参阅IAM用户指南中的创建IAM策略。
有关 Audit Manager 定义的AWS操作和资源类型(包括每种资源类型的格式)的详细信息,请参阅《服务授权参考》中的 Audit Manager 的操作、资源和条件键。ARNs AWS
目录
策略最佳实践
基于身份的策略确定某个人是否可以创建、访问或删除您账户中的 Audit Manager 资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时,请遵循以下指南和建议:
-
开始使用 AWS 托管策略并转向最低权限权限 — 要开始向用户和工作负载授予权限,请使用为许多常见用例授予权限的AWS 托管策略。它们在你的版本中可用 AWS 账户。我们建议您通过定义针对您的用例的 AWS 客户托管策略来进一步减少权限。有关更多信息,请参阅《IAM用户指南》中的AWS 托AWS 管策略或工作职能托管策略。
-
应用最低权限权限-使用IAM策略设置权限时,仅授予执行任务所需的权限。为此,您可以定义在特定条件下可以对特定资源执行的操作,也称为最低权限许可。有关使用应用权限IAM的更多信息,请参阅《IAM用户指南》IAM中的策略和权限。
-
使用IAM策略中的条件进一步限制访问权限-您可以在策略中添加条件以限制对操作和资源的访问权限。例如,您可以编写一个策略条件来指定所有请求都必须使用发送SSL。如果服务操作是通过特定的方式使用的,则也可以使用条件来授予对服务操作的访问权限 AWS 服务,例如 AWS CloudFormation。有关更多信息,请参阅《IAM用户指南》中的IAMJSON策略元素:条件。
-
使用 A IAM ccess Analyzer 验证您的IAM策略以确保权限的安全性和功能性 — A IAM ccess Analyzer 会验证新的和现有的策略,以便策略符合IAM策略语言 (JSON) 和IAM最佳实践。IAMAccess Analyzer 提供了 100 多项策略检查和可行的建议,可帮助您制定安全和实用的策略。有关更多信息,请参阅《IAM用户指南》中的 IAMAccess Analyzer 策略验证。
-
需要多重身份验证 (MFA)-如果您的场景需要IAM用户或 root 用户 AWS 账户,请打开MFA以提高安全性。要要求MFA何时调用API操作,请在策略中添加MFA条件。有关更多信息,请参阅《IAM用户指南》中的配置MFA受保护的API访问权限。
有关中最佳做法的更多信息IAM,请参阅《IAM用户指南》IAM中的安全最佳实践。
允许启用 Audit Manager 所需的最低权限
此示例显示如何允许不具有管理员角色的账户启用 AWS Audit Manager。
注意
我们在此处提供的是一项基本策略,它授予启用 Audit Manager 所需的最低权限。以下策略中的所有权限都是必需的。如果省略此策略的任何部分,则无法启用 Audit Manager。
我们建议您花点时间自定义权限,使其满足您的特定需求。如果您需要帮助,请联系您的管理员或 Supp AWSort
要授予启用 Audit Manager 所需的最低访问权限,请使用以下权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "auditmanager:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "auditmanager.amazonaws.com" } } }, { "Sid": "CreateEventsAccess", "Effect": "Allow", "Action": [ "events:PutRule" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "events:source": [ "aws.securityhub" ] } } }, { "Sid": "EventsAccess", "Effect": "Allow", "Action": [ "events:PutTargets" ], "Resource": "arn:aws:events:*:*:rule/AuditManagerSecurityHubFindingsReceiver" }, { "Effect": "Allow", "Action": "kms:ListAliases", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "auditmanager.amazonaws.com" } } } ] }
您无需为仅拨打 AWS CLI 或的用户设置最低控制台权限 AWS API。相反,只允许访问与你正在尝试执行的API操作相匹配的操作。
允许用户拥有对 AWS Audit Manager的全部管理员访问权限
以下示例策略授予对的完全管理员访问权限 AWS Audit Manager。
示例 1(托管式策略,AWSAuditManagerAdministratorAccess
)
该AWSAuditManagerAdministratorAccess策略包括启用和禁用 Audit Manager、更改审计管理器设置以及管理所有 Audit Manager 资源(例如评估、框架、控制和评估报告)的能力。
示例 2(评测报告目标权限)
此策略授予您访问特定 S3 存储桶以及向其中添加文件和从中删除文件的权限。这允许您在 Audit Manager 中使用指定的存储桶作为评测报告目标。
更换 placeholder text
用你自己的信息。包括您用作评估报告目标的 S3 存储桶以及用于加密评估报告的密KMS钥。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", "s3:GetBucketLocation", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-destination-bucket
/*" } ] }, { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2
:111122223333
:key/1234abcd-12ab-34cd-56ef-1234567890ab
" } ] }
示例 3(导出目标权限)
以下策略允许 CloudTrail 将证据查找器查询结果传送到指定的 S3 存储桶。作为安全最佳实践,IAM全局条件密钥aws:SourceArn
有助于确保仅针对事件数据存储 CloudTrail 写入 S3 存储桶。
更换 placeholder text
使用您自己的信息,如下所示:
-
Replace(替换)
amzn-s3-demo-destination-bucket
使用您用作导出目标的 S3 存储桶。 -
Replace(替换)
myQueryRunningRegion
使用 AWS 区域 适合您的配置的。 -
Replace(替换)
myAccountID
使用所用的 AWS 账户 ID CloudTrail。这可能与 S3 存储桶的 AWS 账户 ID 不同。如果这是组织事件数据存储,则必须将 AWS 账户 用于管理账户。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "s3:PutObject*", "s3:Abort*" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-destination-bucket
", "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" ], "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudtrail:myQueryRunningRegion
:myAccountID
:eventdatastore/*" } } }, { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket
", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudtrail:myQueryRunningRegion
:myAccountID
:eventdatastore/*" } } }, { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:Decrypt*", "kms:GenerateDataKey*" ], "Resource": "*" }, { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:Decrypt*", "kms:GenerateDataKey*" ], "Resource": "*" } ] }
示例 4(启用证据查找器的权限)
如果要启用和使用证据查找器功能,则需要以下权限策略。本政策声明允许 Audit Manager 创建 CloudTrail Lake 事件数据存储并运行搜索查询。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageCloudTrailLakeQueryAccess", "Effect": "Allow", "Action": [ "cloudtrail:StartQuery", "cloudtrail:DescribeQuery", "cloudtrail:GetQueryResults", "cloudtrail:CancelQuery" ], "Resource": "arn:aws:cloudtrail:*:*:eventdatastore/*" }, { "Sid": "ManageCloudTrailLakeAccess", "Effect": "Allow", "Action": [ "cloudtrail:CreateEventDataStore" ], "Resource": "arn:aws:cloudtrail:*:*:eventdatastore/*" } ] }
示例 5(禁用证据查找器的权限)
此示例策略授予在 Audit Manager 中禁用证据查找器功能的权限。这包括删除首次启用该功能时创建的事件数据存储。
在使用此政策之前,请更换 placeholder
text
用你自己的信息。您应该指定UUID启用证据查找器时创建的事件数据存储库。您可以从 Aud ARN it Manager 设置中检索事件数据存储的。有关更多信息,请参阅 “AWS Audit Manager API参考” GetSettings中的。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudtrail:DeleteEventDataStore", "cloudtrail:UpdateEventDataStore" ], "Resource": "
arn:aws:cloudtrail:::event-data-store-UUID
" } ] }
允许对 AWS Audit Manager的用户管理访问权限
此示例显示了如何允许对 AWS Audit Manager的非管理员管理访问权限。
此策略允许管理所有 Audit Manager 资源(评测、框架和控件),但不允许启用或禁用 Audit Manager 或修改 Audit Manager 设置。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AuditManagerAccess", "Effect": "Allow", "Action": [ "auditmanager:AssociateAssessmentReportEvidenceFolder", "auditmanager:BatchAssociateAssessmentReportEvidence", "auditmanager:BatchCreateDelegationByAssessment", "auditmanager:BatchDeleteDelegationByAssessment", "auditmanager:BatchDisassociateAssessmentReportEvidence", "auditmanager:BatchImportEvidenceToAssessmentControl", "auditmanager:CreateAssessment", "auditmanager:CreateAssessmentFramework", "auditmanager:CreateAssessmentReport", "auditmanager:CreateControl", "auditmanager:DeleteControl", "auditmanager:DeleteAssessment", "auditmanager:DeleteAssessmentFramework", "auditmanager:DeleteAssessmentFrameworkShare", "auditmanager:DeleteAssessmentReport", "auditmanager:DisassociateAssessmentReportEvidenceFolder", "auditmanager:GetAccountStatus", "auditmanager:GetAssessment", "auditmanager:GetAssessmentFramework", "auditmanager:GetControl", "auditmanager:GetServicesInScope", "auditmanager:GetSettings", "auditmanager:GetAssessmentReportUrl", "auditmanager:GetChangeLogs", "auditmanager:GetDelegations", "auditmanager:GetEvidence", "auditmanager:GetEvidenceByEvidenceFolder", "auditmanager:GetEvidenceFileUploadUrl", "auditmanager:GetEvidenceFolder", "auditmanager:GetEvidenceFoldersByAssessment", "auditmanager:GetEvidenceFoldersByAssessmentControl", "auditmanager:GetInsights", "auditmanager:GetInsightsByAssessment", "auditmanager:GetOrganizationAdminAccount", "auditmanager:ListAssessments", "auditmanager:ListAssessmentReports", "auditmanager:ListControls", "auditmanager:ListKeywordsForDataSource", "auditmanager:ListNotifications", "auditmanager:ListAssessmentControlInsightsByControlDomain", "auditmanager:ListAssessmentFrameworks", "auditmanager:ListAssessmentFrameworkShareRequests", "auditmanager:ListControlDomainInsights", "auditmanager:ListControlDomainInsightsByAssessment", "auditmanager:ListControlInsightsByControlDomain", "auditmanager:ListTagsForResource", "auditmanager:StartAssessmentFrameworkShare", "auditmanager:TagResource", "auditmanager:UntagResource", "auditmanager:UpdateControl", "auditmanager:UpdateAssessment", "auditmanager:UpdateAssessmentControl", "auditmanager:UpdateAssessmentControlSetStatus", "auditmanager:UpdateAssessmentFramework", "auditmanager:UpdateAssessmentFrameworkShare", "auditmanager:UpdateAssessmentStatus", "auditmanager:ValidateAssessmentReportIntegrity" ], "Resource": "*" }, { "Sid": "ControlCatalogAccess", "Effect": "Allow", "Action": [ "controlcatalog:ListCommonControls", "controlcatalog:ListDomains", "controlcatalog:ListObjectives" ], "Resource": "*" }, { "Sid": "OrganizationsAccess", "Effect": "Allow", "Action": [ "organizations:ListAccountsForParent", "organizations:ListAccounts", "organizations:DescribeOrganization", "organizations:DescribeOrganizationalUnit", "organizations:DescribeAccount", "organizations:ListParents", "organizations:ListChildren" ], "Resource": "*" }, { "Sid": "IAMAccess", "Effect": "Allow", "Action": [ "iam:GetUser", "iam:ListUsers", "iam:ListRoles" ], "Resource": "*" }, { "Sid": "S3Access", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Sid": "KmsAccess", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" }, { "Sid": "SNSAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "TagAccess", "Effect": "Allow", "Action": [ "tag:GetResources" ], "Resource": "*" } ] }
允许用户只读访问 AWS Audit Manager
此策略授予对评估、框架和控件等 AWS Audit Manager 资源的只读访问权限。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AuditManagerAccess", "Effect": "Allow", "Action": [ "auditmanager:Get*", "auditmanager:List*" ], "Resource": "*" } ] }
允许用户查看他们自己的权限
此示例说明如何创建允许IAM用户查看附加到其用户身份的内联和托管策略的策略。此策略包括在控制台上或使用或以编程方式完成此操作的 AWS CLI 权限。 AWS API
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
AWS Audit Manager 允许向 Amazon SNS 主题发送通知
本示例中的策略授予 Audit Manager 向现有亚马逊SNS主题发送通知的权限。
在以下策略中,获得权限的主体是 Audit Manager 服务主体,它是 auditmanager.amazonaws.com
。策略语句中的主体是 AWS 服务主体时,我们强烈建议您在策略中使用 aws:SourceArn
或 aws:SourceAccount
全局条件键。您可以使用这些全局条件上下文键来帮助防止出现混淆代理场景。
示例 1(SNS主题的权限)
此策略声明允许 Audit Manager 向指定SNS主题发布事件。任何发布到指定SNS主题的请求都必须满足政策条件。
在使用此政策之前,请更换 placeholder
text
用你自己的信息。记录以下内容:
-
如果您在此策略中使用
aws:SourceArn
条件键,则该值必须是通知来自的 ARN Audit Manager 资源的值。在下面的示例中,aws:SourceArn
使用通配符 (*
) 作为资源 ID。这允许来自 Audit Manager 的对所有 Audit Manager 资源的所有请求。使用aws:SourceArn
全局条件键,您可以使用StringLike
或ArnLike
条件运算符。作为最佳实践,我们建议您使用ArnLike
。 -
如果使用
aws:SourceAccount
条件键,则可以使用StringEquals
或StringLike
条件运算符。作为最佳实践,我们建议您使用StringEquals
实现最低权限。 -
如果使用
aws:SourceAccount
和aws:SourceArn
,则账户值必须显示相同的账户 ID。
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowAuditManagerToUseSNSTopic", "Effect": "Allow", "Principal": { "Service": "auditmanager.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:
region
:accountID
:topicName
", "Condition": { "StringEquals": { "aws:SourceAccount": "accountID
" }, "ArnLike": { "aws:SourceArn": "arn:aws:auditmanager:region
:accountID
:*
" } } } }
以下替代示例仅使用 aws:SourceArn
条件键和 StringLike
条件运算符:
"Condition": { "StringLike": { "aws:SourceArn": "arn:aws:auditmanager:
region
:accountID
:*" } }
以下替代示例仅使用 aws:SourceAccount
条件键和 StringLike
条件运算符:
"Condition": { "StringLike": { "aws:SourceAccount": "
accountID
" } }
示例 2(附加到SNS主题的KMS密钥的权限)
此策略声明允许 Audit Manager 使用密钥生成用于加密SNS主题的数据密钥。KMS任何使用KMS密钥进行指定操作的请求都必须满足策略条件。
在使用此政策之前,请更换 placeholder
text
用你自己的信息。记录以下内容:
-
如果您在此策略中使用
aws:SourceArn
条件密钥,则该值必须是正在加密的资源的值。ARN例如,在本例中,这是您账户中的SNS主题。将值设置为ARN或带有通配符 (*
) 的ARN模式。您可以将StringLike
或ArnLike
条件运算符与aws:SourceArn
条件键一起使用。作为最佳实践,我们建议您使用ArnLike
。 -
如果使用
aws:SourceAccount
条件键,则可以使用StringEquals
或StringLike
条件运算符。作为最佳实践,我们建议您使用StringEquals
实现最低权限。aws:SourceAccount
如果您不知道该SNS主题ARN的内容,则可以使用。 -
如果使用
aws:SourceAccount
和aws:SourceArn
,则账户值必须显示相同的账户 ID。
{ "Version": "2012-10-17", "Statement": { "Sid": "AllowAuditManagerToUseKMSKey", "Effect": "Allow", "Principal": { "Service": "auditmanager.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:
region
:accountID
:key/*", "Condition": { "StringEquals": { "aws:SourceAccount": "accountID
" } "ArnLike": { "aws:SourceArn": "arn:aws:sns:region
:accountID
:topicName
" } } } ] }
以下替代示例仅使用 aws:SourceArn
条件键和 StringLike
条件运算符:
"Condition": { "StringLike": { "aws:SourceArn": "arn:aws:sns:
region
:accountID
:topicName" } }
以下替代示例仅使用 aws:SourceAccount
条件键和 StringLike
条件运算符:
"Condition": { "StringLike": { "aws:SourceAccount": "
accountID
" } }
允许用户在证据查找器中运行搜索查询
以下策略授予对 CloudTrail Lake 事件数据存储执行查询的权限。如果要使用证据查找器功能,则需要使用此权限策略。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageCloudTrailLakeQueryAccess", "Effect": "Allow", "Action": [ "cloudtrail:StartQuery", "cloudtrail:DescribeQuery", "cloudtrail:GetQueryResults", "cloudtrail:CancelQuery" ], "Resource": "*" } ] }