오픈 소스로 클라우드 구성 오류 찾기 및 수정
도전, 당신이 찾고 있는 것
설치
pip3 install checkov
brew install checkov
용법
checkov -d .
VSCode 플러그인
Visual Studio Code를 사용하는 사용자를 위해 멋진 플러그인을 사용할 수 있습니다. VSCode를 bridgecrew과 통합하면 VSCode 내에서 전체 수정 라이브러리를 사용할 수 있습니다. 이것은 매우 강력합니다. 실패한 검사 및 결과를 검토할 때 수정 라이브러리는 해결해야 하는 다양한 항목을 빠른 수정과 함께 보다 간결하고 쉽게 소모할 수 있는 보기로 표시하고 표시하는 데 도움이 됩니다.
데모-예제 Terraform 스캔 결과
합격
실패한
Check: CKV_AWS_21: "Ensure all data stored in the S3 bucket have versioning enabled"
FAILED for resource: aws_s3_bucket.bucket
File: /terraform-aws-s3-bucket-master/main.tf:36-146
Guide: https://docs.bridgecrew.io/docs/s3_16-enable-versioning
36 | resource "aws_s3_bucket" "bucket" {
37 | count = var.module_enabled ? 1 : 0
38 |
39 | bucket = var.bucket
40 | bucket_prefix = var.bucket_prefix
41 | acl = var.acl
42 | tags = local.bucket_tags
43 | force_destroy = var.force_destroy
44 | acceleration_status = var.acceleration_status
45 | request_payer = var.request_payer
46 |
47 | dynamic "cors_rule" {
48 | for_each = local.cors
49 |
50 | content {
51 | allowed_headers = lookup(cors_rule.value, "allowed_headers", null)
52 | allowed_methods = cors_rule.value.allowed_methods
53 | allowed_origins = cors_rule.value.allowed_origins
54 | expose_headers = lookup(cors_rule.value, "expose_headers", null)
55 | max_age_seconds = lookup(cors_rule.value, "max_age_seconds", null)
56 | }
57 | }
58 |
59 | dynamic "versioning" {
60 | for_each = local.versioning
61 |
62 | content {
63 | enabled = lookup(versioning.value, "enabled", null)
64 | mfa_delete = lookup(versioning.value, "mfa_delete", false)
65 | }
66 | }
67 |
68 | dynamic "logging" {
69 | for_each = local.logging
70 |
71 | content {
72 | target_bucket = logging.value.target_bucket
73 | target_prefix = lookup(logging.value, "target_prefix", null)
74 | }
75 | }
76 |
77 | dynamic "server_side_encryption_configuration" {
78 | for_each = local.encryption
79 | iterator = sse
80 |
81 | content {
82 | rule {
83 | apply_server_side_encryption_by_default {
84 | kms_master_key_id = lookup(sse.value, "kms_master_key_id", null)
85 | sse_algorithm = lookup(sse.value, "sse_algorithm",
86 | lookup(sse.value, "kms_master_key_id", null) == null ? "AES256" : "aws:kms"
87 | )
88 | }
89 | }
90 | }
91 | }
92 |
93 | dynamic "lifecycle_rule" {
94 | for_each = var.lifecycle_rules
95 | iterator = rule
96 |
97 | content {
98 | id = lookup(rule.value, "id", null)
99 | prefix = lookup(rule.value, "prefix", null)
100 | tags = lookup(rule.value, "tags", null)
101 | abort_incomplete_multipart_upload_days = lookup(rule.value, "abort_incomplete_multipart_upload_days", null)
102 | enabled = rule.value.enabled
103 |
104 | dynamic "expiration" {
105 | for_each = length(keys(lookup(rule.value, "expiration", {}))) == 0 ? [] : [rule.value.expiration]
106 |
107 | content {
108 | date = lookup(expiration.value, "date", null)
109 | days = lookup(expiration.value, "days", null)
110 | expired_object_delete_marker = lookup(expiration.value, "expired_object_delete_marker", null)
111 | }
112 | }
113 |
114 | dynamic "transition" {
115 | for_each = lookup(rule.value, "transition", [])
116 |
117 | content {
118 | date = lookup(transition.value, "date", null)
119 | days = lookup(transition.value, "days", null)
120 | storage_class = transition.value.storage_class
121 | }
122 | }
123 |
124 | dynamic "noncurrent_version_expiration" {
125 | for_each = length(keys(lookup(rule.value, "noncurrent_version_expiration", {}))) == 0 ? [] : [rule.value.noncurrent_version_expiration]
126 | iterator = expiration
127 |
128 | content {
129 | days = lookup(expiration.value, "days", null)
130 | }
131 | }
132 |
133 | dynamic "noncurrent_version_transition" {
134 | for_each = lookup(rule.value, "noncurrent_version_transition", [])
135 | iterator = transition
136 |
137 | content {
138 | days = lookup(transition.value, "days", null)
139 | storage_class = transition.value.storage_class
140 | }
141 | }
142 | }
143 | }
144 |
145 | depends_on = [var.module_depends_on]
146 | }
다음을 포함한 주요 클라우드 공급자 및 프레임워크 지원:
-AWS
-CloudFormation
-AWS CDK
-테라포밍
-서버리스
통합, CI/CD 워크플로 지원:
코드로서의 정책 기능:
Reference
이 문제에 관하여(오픈 소스로 클라우드 구성 오류 찾기 및 수정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/finding-and-fixing-cloud-misconfigurations-with-open-source-291e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)