Как исправить несоответствие политики s3-bucket-получателю грантов?

#amazon-web-services #amazon-s3 #standards-compliance #aws-config #nist

Вопрос:

Я развернул пакет соответствия NIST CSF в своей учетной записи AWS с помощью конфигурации AWS, чтобы улучшить свою безопасность. Один из моих ресурсов не соответствовал требованиям из-за того, что проверка s3-bucket-policy-grantee-не прошла. Во-первых, я не понимаю, что это означает на простом английском языке, несмотря на то, что читал его несколько раз (я надеялся, что кто-нибудь сможет еще больше упростить для меня язык).

У меня есть следующая политика, но я не могу понять, почему я не могу избавиться от этого нарушения:

 {
    "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"
                }
            }
        }
    ]
}
 

Что я делаю не так?

пс. Это для корзины, которая была подготовлена, когда я создавал трассировку в CloudTrail, и она создала эту корзину как корзину журнала трассировки.

Комментарии:

1. Какие входные параметры вы использовали для правила?

2. @Marcin Я их не использовал. Для этого правила не было возможности добавлять правила ввода с помощью ручного/автоматического управления исправлением. Я попытался решить эту проблему, добавив окончательное утверждение AllowSSLRequestsOnly, но я не понимаю, что это вообще не имеет смысла, оно предназначено только для разрешения SSL-запросов и не ограничивает круг участников AWS, пользователей и т.д. Позвольте мне попытаться добавить заявление, чтобы пользователи IAM могли получить доступ к этой корзине, и опубликовать обновление в разделе комментариев.

3. @Marcin нет, не сработало, лол

4. @Marcin позвольте мне уточнить. Я развернул пакет соответствия с этим заранее подготовленным правилом. Не было возможности добавить входные параметры. По умолчанию это правило не соответствовало требованиям. Есть какие-нибудь идеи о том, как это решить?

5. @Marcin Я все понял. Поскольку я развернул это правило с помощью пакета соответствия, я не смог отредактировать роль, поскольку она прикреплена к роли, связанной со службой, которая предотвращает любые изменения/удаления правил в пакете соответствия. Когда я развернул правило самостоятельно и ввел необходимые входные данные (servicePrincipals и awsPrincipals), оно сработало как заклинание, и я смог избавиться от нарушения.

Ответ №1:

Я понял, что происходит. Поскольку я развернул это правило с помощью пакета соответствия, я не смог отредактировать роль, поскольку она прикреплена к роли, связанной с сервисом, которая предотвращает любые изменения/удаления правил в пакете соответствия. Когда я развернул правило самостоятельно и ввел необходимые входные данные (servicePrincipals и awsPrincipals), оно сработало как заклинание, и я смог избавиться от нарушения.