Modify rule S6255: Add new Terraform code sample (#1379)

This commit is contained in:
hendrik-buchwald-sonarsource 2022-11-07 11:39:15 +01:00 committed by GitHub
parent 9a4153ea15
commit 677ffc31c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,7 +20,7 @@ It's recommended to enable S3 MFA delete, note that:
== Sensitive Code Example
A versioned S3 bucket doesn't have MFA delete enabled:
A versioned S3 bucket does not have MFA delete enabled for AWS provider version 3 or below:
[source,terraform]
----
@ -33,14 +33,29 @@ resource "aws_s3_bucket" "example" { # Sensitive
}
----
== Compliant Solution
MFA delete is enabled (https://github.com/hashicorp/terraform-provider-aws/issues/629[it's not possible to set this option] to a new S3 bucket with Terraform but the Terraform template can be updated that way it reflects the state):
A versioned S3 bucket does not have MFA delete enabled for AWS provider version 4 or above:
[source,terraform]
----
resource "aws_s3_bucket" "example" { # Compliant
resource "aws_s3_bucket" "example" {
bucket = "example"
}
resource "aws_s3_bucket_versioning" "example" { # Sensitive
bucket = aws_s3_bucket.example.id
versioning_configuration {
status = "Enabled"
}
}
----
== Compliant Solution
MFA delete is enabled for AWS provider version 3 or below:
[source,terraform]
----
resource "aws_s3_bucket" "example" {
bucket = "example"
versioning {
@ -50,6 +65,24 @@ resource "aws_s3_bucket" "example" { # Compliant
}
----
MFA delete is enabled for AWS provider version 4 or above:
[source,terraform]
----
resource "aws_s3_bucket" "example" {
bucket = "example"
}
resource "aws_s3_bucket_versioning" "example" {
bucket = aws_s3_bucket.example.id
versioning_configuration {
status = "Enabled"
mfa_delete = "Enabled"
}
mfa = "${var.MFA}"
}
----
== See
* https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/[OWASP Top 10 2021 Category A7] - Identification and Authentication Failures