Skip to content

Commit 618e56a

Browse files
authored
Update iam modules to allow overiding policy name and a list of roles (#35)
* Allow overriding policy name and add more role to the delegate allowed * Update examples * Use the pre-release instead
1 parent 0646f85 commit 618e56a

File tree

9 files changed

+38
-23
lines changed

9 files changed

+38
-23
lines changed

examples/custom_vpc/main.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,28 @@ provider "aws" {
1414
}
1515

1616
module "agentless_scanner_role" {
17-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/agentless-scanner-role?ref=0.2.0"
17+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/agentless-scanner-role?ref=0.6.0"
1818

1919
account_roles = [module.delegate_role.role.arn]
2020
}
2121

2222
module "delegate_role" {
23-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/scanning-delegate-role?ref=0.2.0"
23+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/scanning-delegate-role?ref=0.6.0"
2424

25-
scanner_role_arn = module.agentless_scanner_role.role.arn
25+
scanner_roles = [module.agentless_scanner_role.role.arn]
2626
}
2727

2828
module "user_data" {
29-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/user_data?ref=0.2.0"
29+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/user_data?ref=0.6.0"
3030

3131
hostname = "agentless-scanning-us-east-1"
3232
api_key = var.api_key
3333
}
3434

3535
module "instance" {
36-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/instance?ref=0.2.0"
36+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/instance?ref=0.6.0"
3737

3838
user_data = module.user_data.install_sh
3939
iam_instance_profile = module.agentless_scanner_role.profile.name
4040
subnet_id = var.subnet_id
41-
}
41+
}

examples/multi_region/main.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,19 @@ provider "aws" {
2020
}
2121

2222
module "agentless_scanner_role" {
23-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/agentless-scanner-role?ref=0.2.0"
23+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/agentless-scanner-role?ref=0.6.0"
2424

2525
account_roles = [module.delegate_role.role.arn]
2626
}
2727

2828
module "delegate_role" {
29-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/scanning-delegate-role?ref=0.2.0"
29+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/scanning-delegate-role?ref=0.6.0"
3030

31-
scanner_role_arn = module.agentless_scanner_role.role.arn
31+
scanner_roles = [module.agentless_scanner_role.role.arn]
3232
}
3333

3434
module "agentless_scanner" {
35-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner?ref=0.2.0"
35+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner?ref=0.6.0"
3636
providers = {
3737
aws = aws.us
3838
}
@@ -42,11 +42,11 @@ module "agentless_scanner" {
4242
}
4343

4444
module "agentless_scanner" {
45-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner?ref=0.2.0"
45+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner?ref=0.6.0"
4646
providers = {
4747
aws = aws.eu
4848
}
4949

5050
api_key = var.api_key
5151
instance_profile_name = module.agentless_scanner_role.instance_profile.name
52-
}
52+
}

examples/single_region/main.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@ provider "aws" {
1414
}
1515

1616
module "scanner_role" {
17-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/agentless-scanner-role?ref=0.2.0"
17+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/agentless-scanner-role?ref=0.6.0"
1818

1919
account_roles = [module.delegate_role.role.arn]
2020
}
2121

2222
module "delegate_role" {
23-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/scanning-delegate-role?ref=0.2.0"
23+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner//modules/scanning-delegate-role?ref=0.6.0"
2424

25-
scanner_role_arn = module.scanner_role.role.arn
25+
scanner_role = [module.scanner_role.role.arn]
2626
}
2727

2828
module "agentless_scanner" {
29-
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner?ref=0.2.0"
29+
source = "git::https://github.com/DataDog/terraform-datadog-agentless-scanner?ref=0.6.0"
3030

3131
api_key = var.api_key
3232
instance_profile_name = module.scanner_role.instance_profile.name

modules/agentless-scanner-role/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ No modules.
3636
| <a name="input_account_roles"></a> [account\_roles](#input\_account\_roles) | List of cross accounts roles ARN that the Datadog agentless scanner can assume | `list(string)` | `[]` | no |
3737
| <a name="input_api_key_secret_arn"></a> [api\_key\_secret\_arn](#input\_api\_key\_secret\_arn) | ARN of the secret holding the Datadog API key | `string` | `null` | no |
3838
| <a name="input_enable_ssm"></a> [enable\_ssm](#input\_enable\_ssm) | Whether to enable AWS SSM to facilitate executing troubleshooting commands on the instance | `bool` | `false` | no |
39+
| <a name="input_iam_policy_name"></a> [iam\_policy\_name](#input\_iam\_policy\_name) | Name to use on IAM policy created | `string` | `"DatadogAgentlessScannerAgentPolicy"` | no |
40+
| <a name="input_iam_policy_path"></a> [iam\_policy\_path](#input\_iam\_policy\_path) | IAM policy path | `string` | `null` | no |
3941
| <a name="input_iam_role_name"></a> [iam\_role\_name](#input\_iam\_role\_name) | Name to use on IAM role created | `string` | `"DatadogAgentlessScannerAgentRole"` | no |
4042
| <a name="input_iam_role_path"></a> [iam\_role\_path](#input\_iam\_role\_path) | IAM role path | `string` | `null` | no |
4143
| <a name="input_kms_key_arn"></a> [kms\_key\_arn](#input\_kms\_key\_arn) | ARN of the KMS key encrypting the secret | `string` | `null` | no |

modules/agentless-scanner-role/main.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ data "aws_iam_policy_document" "scanner_policy_document" {
6868
}
6969

7070
resource "aws_iam_policy" "scanner_policy" {
71-
name = "DatadogAgentlessScannerAgentPolicy"
71+
name = var.iam_policy_name
72+
path = var.iam_policy_path
7273
policy = data.aws_iam_policy_document.scanner_policy_document.json
7374
}
7475

modules/agentless-scanner-role/variables.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,24 @@ variable "iam_role_name" {
44
default = "DatadogAgentlessScannerAgentRole"
55
}
66

7+
variable "iam_policy_name" {
8+
description = "Name to use on IAM policy created"
9+
type = string
10+
default = "DatadogAgentlessScannerAgentPolicy"
11+
}
12+
713
variable "iam_role_path" {
814
description = "IAM role path"
915
type = string
1016
default = null
1117
}
1218

19+
variable "iam_policy_path" {
20+
description = "IAM policy path"
21+
type = string
22+
default = null
23+
}
24+
1325
variable "account_roles" {
1426
description = "List of cross accounts roles ARN that the Datadog agentless scanner can assume"
1527
type = list(string)

modules/scanning-delegate-role/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ No modules.
3535
| <a name="input_iam_policy_path"></a> [iam\_policy\_path](#input\_iam\_policy\_path) | IAM policy path | `string` | `null` | no |
3636
| <a name="input_iam_role_name"></a> [iam\_role\_name](#input\_iam\_role\_name) | Name to use on IAM role created | `string` | `"DatadogAgentlessScannerDelegateRole"` | no |
3737
| <a name="input_iam_role_path"></a> [iam\_role\_path](#input\_iam\_role\_path) | IAM role path | `string` | `null` | no |
38-
| <a name="input_scanner_role_arn"></a> [scanner\_role\_arn](#input\_scanner\_role\_arn) | ARN of the role allowed to assume this role | `string` | n/a | yes |
38+
| <a name="input_scanner_roles"></a> [scanner\_roles](#input\_scanner\_roles) | List of roles ARN allowed to assume this role | `list(string)` | n/a | yes |
3939
| <a name="input_tags"></a> [tags](#input\_tags) | A map of additional tags to add to the IAM role/profile created | `map(string)` | `{}` | no |
4040

4141
## Outputs

modules/scanning-delegate-role/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ data "aws_iam_policy_document" "assume_role_policy" {
228228

229229
principals {
230230
type = "AWS"
231-
identifiers = [var.scanner_role_arn]
231+
identifiers = var.scanner_roles
232232
}
233233
}
234234
}

modules/scanning-delegate-role/variables.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ variable "iam_policy_path" {
2222
default = null
2323
}
2424

25-
variable "scanner_role_arn" {
26-
description = "ARN of the role allowed to assume this role"
27-
type = string
25+
variable "scanner_roles" {
26+
description = "List of roles ARN allowed to assume this role"
27+
type = list(string)
2828
}
2929

3030
variable "tags" {
3131
description = "A map of additional tags to add to the IAM role/profile created"
3232
type = map(string)
3333
default = {}
34-
}
34+
}

0 commit comments

Comments
 (0)