보호 IAM 정책을 통한 버전 관리를 사용한 랜섬웨어 방어
버킷에서 버전 관리를 활성화하고 StorageGRID의 사용자 보안 그룹에 IAM 정책을 구현하여 데이터를 보호하는 방법에 대해 알아보십시오.
오브젝트 잠금 또는 복제를 사용하지 않고 데이터를 보호하는 방법은 버킷에서 버전 관리를 활성화하고 사용자 보안 그룹에 IAM 정책을 구현하여 사용자의 오브젝트 버전 관리 기능을 제한하는 것입니다. 공격이 발생할 경우 데이터의 잘못된 새 버전이 현재 버전으로 만들어지고 최신 버전이 아닌 최신 버전이 안전한 클린 데이터입니다. 데이터에 대한 액세스를 얻기 위해 손상된 계정에는 나중에 복원 작업을 위해 데이터를 보호하는 최신 버전이 아닌 버전을 삭제하거나 변경할 수 있는 액세스 권한이 없습니다. 이전 시나리오와 마찬가지로 ILM 규칙은 사용자가 선택한 기간 동안 비최신 버전의 보존을 관리합니다. 단점은 공격자 공격에 대한 권한이 있는 계정이 존재할 가능성이 여전히 존재하지만 모든 응용 프로그램 서비스 계정과 사용자는 보다 제한적인 액세스를 사용하여 구성해야 한다는 것입니다. 제한 그룹 정책은 사용자 또는 응용 프로그램에서 수행할 수 있는 각 작업을 명시적으로 허용해야 하며, 사용자가 수행할 수 없도록 하려는 모든 작업은 명시적으로 거부해야 합니다. 앞으로 새 작업이 도입될 수 있으므로 와일드카드 ALLOW를 사용하지 않는 것이 좋습니다. 이 경우 허용할지 거부할지 여부를 제어할 수 있습니다 NetApp. 이 솔루션의 경우 거부 목록에는 사용자 또는 프로그래밍 방식의 변경으로부터 버킷 및 개체 버전의 버전 관리를 보호하기 위해 DeleteObjectVersion, PutBucketPolicy, DeleteBucketPolicy, PutLifecycleConfiguration 및 PutBucketVersioning이 포함되어야 합니다.
StorageGRID 11.7에는 이 솔루션을 더 쉽게 구현할 수 있도록 새로운 S3 그룹 정책 옵션 "랜섬웨어 완화"가 도입되었습니다. 테넌트에서 사용자 그룹을 생성할 때 그룹 권한을 선택하면 이 새로운 옵션 정책을 볼 수 있습니다.
다음은 명시적으로 허용되는 대부분의 사용 가능한 작업과 필요한 최소 거부 작업이 포함된 그룹 정책의 내용입니다.
{ "Statement": [ { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:DeleteBucket", "s3:DeleteReplicationConfiguration", "s3:DeleteBucketMetadataNotification", "s3:GetBucketAcl", "s3:GetBucketCompliance", "s3:GetBucketConsistency", "s3:GetBucketLastAccessTime", "s3:GetBucketLocation", "s3:GetBucketNotification" "s3:GetBucketObjectLockConfiguration", "s3:GetBucketPolicy", "s3:GetBucketMetadataNotification", "s3:GetReplicationConfiguration", "s3:GetBucketCORS", "s3:GetBucketVersioning", "s3:GetBucketTagging", "s3:GetEncryptionConfiguration", "s3:GetLifecycleConfiguration", "s3:ListBucket", "s3:ListBucketVersions", "s3:ListAllMyBuckets", "s3:ListBucketMultipartUploads", "s3:PutBucketConsistency", "s3:PutBucketLastAccessTime", "s3:PutBucketNotification", "s3:PutBucketObjectLockConfiguration", "s3:PutReplicationConfiguration", "s3:PutBucketCORS", "s3:PutBucketMetadataNotification", "s3:PutBucketTagging", "s3:PutEncryptionConfiguration", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:RestoreObject", "s3:ValidateObject", "s3:PutBucketCompliance", "s3:PutObjectVersionAcl" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Deny", "Action": [ "s3:DeleteObjectVersion", "s3:DeleteBucketPolicy", "s3:PutBucketPolicy", "s3:PutLifecycleConfiguration", "s3:PutBucketVersioning" ], "Resource": "arn:aws:s3:::*" } ] }