diff --git a/SecurityIdentityCompliance/Exercise1/.terraform.lock.hcl b/SecurityIdentityCompliance/Exercise1/.terraform.lock.hcl new file mode 100644 index 0000000..e51eea3 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise1/.terraform.lock.hcl @@ -0,0 +1,17 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "5.51.1" + constraints = ">= 5.0.0" + hashes = [ + "h1:ESfxP2tCO6IZldSQnepXmIm+x+VtaQt/bKgGjYE+0BY=", + ] +} + +provider "registry.terraform.io/hashicorp/random" { + version = "3.6.2" + hashes = [ + "h1:wmG0QFjQ2OfyPy6BB7mQ57WtoZZGGV07uAPQeDmIrAE=", + ] +} diff --git a/SecurityIdentityCompliance/Exercise1/README.md b/SecurityIdentityCompliance/Exercise1/README.md new file mode 100644 index 0000000..0ad9714 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise1/README.md @@ -0,0 +1,40 @@ + +## Requirements + +| Name | Version | +|------|---------| +| terraform | >= 1.3.0 | +| aws | >= 5.0 | + +## Providers + +| Name | Version | +|------|---------| +| aws | 5.51.1 | +| random | 3.6.2 | + +## Modules + +No modules. + +## Resources + +| Name | Type | +|------|------| +| [aws_iam_group.Group1](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_group) | resource | +| [random_pet.this](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) | resource | + +## Inputs + +No inputs. + +## Outputs + +| Name | Description | +|------|-------------| +| GroupName | Name of IAM group | +| last-updated | n/a | + +--- +## Authorship +This module was developed by xpk. \ No newline at end of file diff --git a/SecurityIdentityCompliance/Exercise1/main.tf b/SecurityIdentityCompliance/Exercise1/main.tf new file mode 100644 index 0000000..15eaf14 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise1/main.tf @@ -0,0 +1,6 @@ +resource "aws_iam_group" "Group1" { + name = "Team-${random_pet.this.id}" + path = "/users/" +} + +resource "random_pet" "this" {} \ No newline at end of file diff --git a/SecurityIdentityCompliance/Exercise1/outputs.tf b/SecurityIdentityCompliance/Exercise1/outputs.tf new file mode 100644 index 0000000..c2042e9 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise1/outputs.tf @@ -0,0 +1,4 @@ +output "GroupName" { + value = aws_iam_group.Group1.name + description = "Name of IAM group" +} \ No newline at end of file diff --git a/SecurityIdentityCompliance/Exercise1/provider.tf b/SecurityIdentityCompliance/Exercise1/provider.tf new file mode 100644 index 0000000..b6ed192 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise1/provider.tf @@ -0,0 +1,27 @@ +provider "aws" { + region = "ap-east-1" + + default_tags { + tags = { + ServiceProvider = "RackspaceTechnology" + Environment = "Training" + Project = "Iac" + TerraformMode = "managed" + TerraformDir = "${reverse(split("/", path.cwd))[1]}/${reverse(split("/", path.cwd))[0]}" + } + } +} + +output "last-updated" { + value = timestamp() +} + +terraform { + required_version = ">= 1.3.0" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 5.0" + } + } +} \ No newline at end of file diff --git a/SecurityIdentityCompliance/Exercise1/terraform.tfvars b/SecurityIdentityCompliance/Exercise1/terraform.tfvars new file mode 100644 index 0000000..e69de29 diff --git a/SecurityIdentityCompliance/Exercise1/variables.tf b/SecurityIdentityCompliance/Exercise1/variables.tf new file mode 100644 index 0000000..e69de29 diff --git a/SecurityIdentityCompliance/Exercise2/.terraform.lock.hcl b/SecurityIdentityCompliance/Exercise2/.terraform.lock.hcl new file mode 100644 index 0000000..60379cc --- /dev/null +++ b/SecurityIdentityCompliance/Exercise2/.terraform.lock.hcl @@ -0,0 +1,17 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "5.51.1" + constraints = ">= 4.0.0, >= 5.0.0" + hashes = [ + "h1:ESfxP2tCO6IZldSQnepXmIm+x+VtaQt/bKgGjYE+0BY=", + ] +} + +provider "registry.terraform.io/hashicorp/random" { + version = "3.6.2" + hashes = [ + "h1:wmG0QFjQ2OfyPy6BB7mQ57WtoZZGGV07uAPQeDmIrAE=", + ] +} diff --git a/SecurityIdentityCompliance/Exercise2/README.md b/SecurityIdentityCompliance/Exercise2/README.md new file mode 100644 index 0000000..ae79607 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise2/README.md @@ -0,0 +1,40 @@ + +## Requirements + +| Name | Version | +|------|---------| +| terraform | >= 1.3.0 | +| aws | >= 5.0 | + +## Providers + +| Name | Version | +|------|---------| +| random | 3.6.2 | + +## Modules + +| Name | Source | Version | +|------|--------|---------| +| iam | terraform-aws-modules/iam/aws//modules/iam-group-with-policies | 5.39.1 | + +## Resources + +| Name | Type | +|------|------| +| [random_pet.this](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) | resource | + +## Inputs + +No inputs. + +## Outputs + +| Name | Description | +|------|-------------| +| GroupName | Name of IAM group | +| last-updated | n/a | + +--- +## Authorship +This module was developed by xpk. \ No newline at end of file diff --git a/SecurityIdentityCompliance/Exercise2/main.tf b/SecurityIdentityCompliance/Exercise2/main.tf new file mode 100644 index 0000000..2f4c196 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise2/main.tf @@ -0,0 +1,12 @@ +module "iam" { + source = "terraform-aws-modules/iam/aws//modules/iam-group-with-policies" + version = "5.39.1" + + name = "Team-${random_pet.this.id}" + create_group = true + custom_group_policy_arns = [ + "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess" + ] +} + +resource "random_pet" "this" {} \ No newline at end of file diff --git a/SecurityIdentityCompliance/Exercise2/outputs.tf b/SecurityIdentityCompliance/Exercise2/outputs.tf new file mode 100644 index 0000000..7a28d68 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise2/outputs.tf @@ -0,0 +1,4 @@ +output "GroupName" { + value = module.iam.group_name + description = "Name of IAM group" +} \ No newline at end of file diff --git a/SecurityIdentityCompliance/Exercise2/provider.tf b/SecurityIdentityCompliance/Exercise2/provider.tf new file mode 100644 index 0000000..b6ed192 --- /dev/null +++ b/SecurityIdentityCompliance/Exercise2/provider.tf @@ -0,0 +1,27 @@ +provider "aws" { + region = "ap-east-1" + + default_tags { + tags = { + ServiceProvider = "RackspaceTechnology" + Environment = "Training" + Project = "Iac" + TerraformMode = "managed" + TerraformDir = "${reverse(split("/", path.cwd))[1]}/${reverse(split("/", path.cwd))[0]}" + } + } +} + +output "last-updated" { + value = timestamp() +} + +terraform { + required_version = ">= 1.3.0" + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 5.0" + } + } +} \ No newline at end of file diff --git a/SecurityIdentityCompliance/Exercise2/terraform.tfvars b/SecurityIdentityCompliance/Exercise2/terraform.tfvars new file mode 100644 index 0000000..e69de29 diff --git a/SecurityIdentityCompliance/Exercise2/variables.tf b/SecurityIdentityCompliance/Exercise2/variables.tf new file mode 100644 index 0000000..e69de29