diff --git a/modules/aws/organizations/delegated_admin/README.md b/modules/aws/organizations/delegated_admin/README.md new file mode 100644 index 00000000..e09939d2 --- /dev/null +++ b/modules/aws/organizations/delegated_admin/README.md @@ -0,0 +1,178 @@ + + + + + + + + +[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stargazers][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![MIT License][license-shield]][license-url] +[![LinkedIn][linkedin-shield]][linkedin-url] + + +
+
+ + Logo + + +

AWS Organization Delegated Admins Module

+

+ This module generates and manages AWS organization delegated administrators. This delegates administrative functionality of a service to an account within an organization. This module takes a map of AWS account IDs and the service principal name to associate with the account. This is typically in the form of a URL, such as service-abbreviation.amazonaws.com. +
+ Explore the docs » +
+
+ Zachary Hill + · + Report Bug + · + Request Feature +

+
+ + +
+ Table of Contents +
    +
  1. Usage
  2. +
  3. Requirements
  4. +
  5. Providers
  6. +
  7. Modules
  8. +
  9. Resources
  10. +
  11. Inputs
  12. +
  13. Outputs
  14. +
  15. License
  16. +
  17. Contact
  18. +
  19. Acknowledgments
  20. +
+
+ + + +## Usage + +### Simple Example + +This example delegates administrative functionality of a service to an account. + +``` +module "organization" { + source = "github.com/zachreborn/terraform-modules//modules/aws/organizations/delegated_admin" + + delegated_admins = { + "123456789012" = "service-abbreviation.amazonaws.com" + } +} +``` + +_For more examples, please refer to the [Documentation](https://github.com/zachreborn/terraform-modules)_ + +

(back to top)

+ + + + + +## Requirements + +| Name | Version | +| ------------------------------------------------------------------------ | -------- | +| [terraform](#requirement_terraform) | >= 1.0.0 | +| [aws](#requirement_aws) | >= 4.0.0 | + +## Providers + +| Name | Version | +| ------------------------------------------------ | -------- | +| [aws](#provider_aws) | >= 4.0.0 | + +## Modules + +No modules. + +## Resources + +| Name | Type | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | +| [aws_organizations_delegated_administrator.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/organizations_delegated_administrator) | resource | +| [aws_organizations_organization.org](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/organizations_organization) | resource | + +## Inputs + +| Name | Description | Type | Default | Required | +| ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | +| [aws_service_access_principals](#input_aws_service_access_principals) | (Optional) List of AWS service principal names for which you want to enable integration with your organization. This is typically in the form of a URL, such as service-abbreviation.amazonaws.com. Organization must have feature_set set to ALL. For additional information, see the AWS Organizations User Guide. | `list(string)` |
[
"account.amazonaws.com",
"aws-artifact-account-sync.amazonaws.com",
"backup.amazonaws.com",
"cloudtrail.amazonaws.com",
"health.amazonaws.com",
"sso.amazonaws.com"
]
| no | +| [delegated_administrators](#input_delegated_administrators) | (Optional) Map of AWS account IDs and the service principal name to associate with the account. This is typically in the form of a URL, such as service-abbreviation.amazonaws.com. | `map(string)` | `null` | no | +| [enabled_policy_types](#input_enabled_policy_types) | (Optional) List of Organizations policy types to enable in the Organization Root. Organization must have feature_set set to ALL. For additional information about valid policy types (e.g., AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, and TAG_POLICY), see the AWS Organizations API Reference. | `list(string)` | `null` | no | +| [feature_set](#input_feature_set) | (Optional) Specify 'ALL' (default) or 'CONSOLIDATED_BILLING'. | `string` | `"ALL"` | no | + +## Outputs + +| Name | Description | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| [accounts](#output_accounts) | List of organization accounts.All elements have these attributes: arn, email, id, name, status. | +| [arn](#output_arn) | ARN of the organization | +| [id](#output_id) | ID of the organization | +| [master_account_arn](#output_master_account_arn) | ARN of the master account | +| [master_account_email](#output_master_account_email) | Email address of the master account | +| [master_account_id](#output_master_account_id) | ID of the master account | +| [roots](#output_roots) | List of organization roots.All elements have these attributes: arn, id, name, policy_types. | + + + + + +## License + +Distributed under the MIT License. See `LICENSE.txt` for more information. + +

(back to top)

+ + + +## Contact + +Zachary Hill - [![LinkedIn][linkedin-shield]][linkedin-url] - zhill@zacharyhill.co + +Project Link: [https://github.com/zachreborn/terraform-modules](https://github.com/zachreborn/terraform-modules) + +

(back to top)

+ + + +## Acknowledgments + +- [Zachary Hill](https://zacharyhill.co) +- [Jake Jones](https://github.com/jakeasarus) + +

(back to top)

+ + + + +[contributors-shield]: https://img.shields.io/github/contributors/zachreborn/terraform-modules.svg?style=for-the-badge +[contributors-url]: https://github.com/zachreborn/terraform-modules/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/zachreborn/terraform-modules.svg?style=for-the-badge +[forks-url]: https://github.com/zachreborn/terraform-modules/network/members +[stars-shield]: https://img.shields.io/github/stars/zachreborn/terraform-modules.svg?style=for-the-badge +[stars-url]: https://github.com/zachreborn/terraform-modules/stargazers +[issues-shield]: https://img.shields.io/github/issues/zachreborn/terraform-modules.svg?style=for-the-badge +[issues-url]: https://github.com/zachreborn/terraform-modules/issues +[license-shield]: https://img.shields.io/github/license/zachreborn/terraform-modules.svg?style=for-the-badge +[license-url]: https://github.com/zachreborn/terraform-modules/blob/master/LICENSE.txt +[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555 +[linkedin-url]: https://www.linkedin.com/in/zachary-hill-5524257a/ +[product-screenshot]: /images/screenshot.webp +[Terraform.io]: https://img.shields.io/badge/Terraform-7B42BC?style=for-the-badge&logo=terraform +[Terraform-url]: https://terraform.io diff --git a/modules/aws/organizations/delegated_administrator/main.tf b/modules/aws/organizations/delegated_admin/main.tf similarity index 89% rename from modules/aws/organizations/delegated_administrator/main.tf rename to modules/aws/organizations/delegated_admin/main.tf index 7615ac27..f6da3230 100644 --- a/modules/aws/organizations/delegated_administrator/main.tf +++ b/modules/aws/organizations/delegated_admin/main.tf @@ -13,7 +13,7 @@ terraform { ########################################################### resource "aws_organizations_delegated_administrator" "this" { - for_each = var.delegated_administrators + for_each = var.delegated_admins account_id = each.key service_principal = each.value } diff --git a/modules/aws/organizations/delegated_administrator/outputs.tf b/modules/aws/organizations/delegated_admin/outputs.tf similarity index 100% rename from modules/aws/organizations/delegated_administrator/outputs.tf rename to modules/aws/organizations/delegated_admin/outputs.tf diff --git a/modules/aws/organizations/delegated_administrator/variables.tf b/modules/aws/organizations/delegated_admin/variables.tf similarity index 90% rename from modules/aws/organizations/delegated_administrator/variables.tf rename to modules/aws/organizations/delegated_admin/variables.tf index 2e0e6d4e..9d00cc15 100644 --- a/modules/aws/organizations/delegated_administrator/variables.tf +++ b/modules/aws/organizations/delegated_admin/variables.tf @@ -2,11 +2,11 @@ # AWS Organization Delegated Administrator ############################################################ -variable "delegated_administrators" { +variable "delegated_admins" { description = "(Required) Map where the keys are AWS account IDs and the value is the service principal name to associate with the account. This is typically in the form of a URL, such as service-abbreviation.amazonaws.com." type = map(string) # Example: - # delegated_administrators = { + # delegated_admins = { # "123456789012" = "service-abbreviation.amazonaws.com", # "123456789013" = "service-abbreviation.amazonaws.com" # }