Как исправить несоответствие s3-bucket-policy-grantee-check?
Я развернул пакет соответствия NIST CSF в своей учетной записи AWS через AWS Config, чтобы повысить уровень безопасности. Один из моих ресурсов не соответствовал требованиям из-за того, что s3-bucket-policy-grantee-check не прошел. Во-первых, я не понимаю, что это означает на простом английском, несмотря на то, что читал его несколько раз (я надеялся, что кто-то сможет просто говорить для меня еще больше).
У меня следующая политика корзины, но я не могу понять, почему я не могу избавиться от этого нарушения:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSCloudTrailAclCheck",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::cis-alarms-<account-number>"
},
{
"Sid": "AWSCloudTrailWrite",
"Effect": "Allow",
"Principal": {
"Service": "cloudtrail.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::cis-alarms-<account-number>/AWSLogs/<account-number>/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
},
{
"Sid": "AllowSSLRequestsOnly",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::cis-alarms-<account-number>",
"arn:aws:s3:::cis-alarms-<account-number>/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
}
]
}
Что я делаю не так?
PS. Это для корзины, которая была подготовлена, когда я создавал трейл в CloudTrail, и он создал это ведро как ведро журнала трейлов .
2 ответа
Я понял, что происходит. Поскольку я развернул это правило с помощью пакета соответствия, я не смог отредактировать роль, поскольку она привязана к роли, связанной со службой, которая предотвращает любые изменения / удаления правил в пакете соответствия. Когда я развернул правило само по себе и ввел необходимые входные данные (servicePrincipals и awsPrincipals), оно сработало как шарм, и я смог избавиться от нарушения.
Проблема действительно в том, что вам необходимо установить правильные принципы в правиле конфигурации. Эти параметры можно настроить в пакете соответствия AWS с помощью Cloudformation, используяInputParameters
свойство. Например:
ConformancePackCis:
Type: AWS::Config::ConformancePack
Properties:
ConformancePackName: CISAWSFoundationsBenchmarkLevel2
TemplateBody: !Sub |-
Resources:
S3BucketPolicyGranteeCheck:
Properties:
ConfigRuleName: s3-bucket-policy-grantee-check
InputParameters:
servicePrincipals: "logging.s3.amazonaws.com"
awsPrincipals: "${AWS::AccountId},arn:aws:iam::cloudfront:user/*"
Scope:
ComplianceResourceTypes:
- AWS::S3::Bucket
Source:
Owner: AWS
SourceIdentifier: S3_BUCKET_POLICY_GRANTEE_CHECK
Type: AWS::Config::ConfigRule