main.tf 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. data aws_partition "current" {}
  2. data aws_iam_policy_document "qualys_assume_role_policy" {
  3. statement {
  4. effect = "Allow"
  5. principals {
  6. type = "AWS"
  7. identifiers = [
  8. "arn:${data.aws_partition.current.partition}:iam::${var.common_services_account}:user/service_accounts/qualys"
  9. ]
  10. }
  11. actions = [
  12. "sts:AssumeRole"
  13. ]
  14. condition {
  15. test = "StringEquals"
  16. variable = "sts:ExternalId"
  17. values = [
  18. var.qualys_connector_externalid
  19. ]
  20. }
  21. }
  22. }
  23. data aws_iam_policy_document "qualys_role_policy" {
  24. statement {
  25. effect = "Allow"
  26. actions = [
  27. "ec2:DescribeInstances",
  28. "ec2:DescribeAddresses",
  29. "ec2:DescribeImages"
  30. ]
  31. resources = ["*"]
  32. }
  33. }
  34. resource aws_iam_role "qualys" {
  35. name = "QualysConnectorRole"
  36. assume_role_policy = data.aws_iam_policy_document.qualys_assume_role_policy.json
  37. description = "Qualys Connector for EC2 instance enumeration"
  38. tags = var.tags
  39. }
  40. resource aws_iam_role_policy "qualys" {
  41. role = aws_iam_role.qualys.id
  42. name = "QualysEC2Connector"
  43. policy = data.aws_iam_policy_document.qualys_role_policy.json
  44. }