-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Module - Organization Delegated Admin (#102)
* added organization delegated admin * added new example for delegated admin * renamed the module * added new example * added AWS link * chore: terraform fmt and terraform-docs --------- Co-authored-by: zachreborn <[email protected]>
- Loading branch information
1 parent
67cbef8
commit 33f56c0
Showing
7 changed files
with
240 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
<!-- Blank module readme template: Do a search and replace with your text editor for the following: `module_name`, `module_description` --> | ||
<!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --> | ||
<a name="readme-top"></a> | ||
|
||
<a name="readme-top"></a> | ||
|
||
<!-- PROJECT SHIELDS --> | ||
<!-- | ||
|
@@ -11,14 +11,14 @@ | |
*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use. | ||
*** https://www.markdownguide.org/basic-syntax/#reference-style-links | ||
--> | ||
|
||
[![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] | ||
|
||
|
||
<!-- PROJECT LOGO --> | ||
<br /> | ||
<div align="center"> | ||
|
@@ -41,7 +41,6 @@ | |
</p> | ||
</div> | ||
|
||
|
||
<!-- TABLE OF CONTENTS --> | ||
<details> | ||
<summary>Table of Contents</summary> | ||
|
@@ -59,14 +58,14 @@ | |
</ol> | ||
</details> | ||
|
||
|
||
<!-- USAGE EXAMPLES --> | ||
|
||
## Usage | ||
|
||
``` | ||
module "account_prod_infrastructure" { | ||
source = "github.com/zachreborn/terraform-modules//modules/aws/organizations_account" | ||
source = "github.com/zachreborn/terraform-modules//modules/aws/organizations/account" | ||
name = "account_prod_infrastructure" | ||
email = "[email protected]" | ||
parent_id = var.account_parent_id | ||
|
@@ -125,15 +124,15 @@ No modules. | |
<!-- END_TF_DOCS --> | ||
|
||
<!-- LICENSE --> | ||
|
||
## License | ||
|
||
Distributed under the MIT License. See `LICENSE.txt` for more information. | ||
|
||
<p align="right">(<a href="#readme-top">back to top</a>)</p> | ||
|
||
|
||
|
||
<!-- CONTACT --> | ||
|
||
## Contact | ||
|
||
Zachary Hill - [![LinkedIn][linkedin-shield]][linkedin-url] - [email protected] | ||
|
@@ -142,19 +141,18 @@ Project Link: [https://github.com/zachreborn/terraform-modules](https://github.c | |
|
||
<p align="right">(<a href="#readme-top">back to top</a>)</p> | ||
|
||
|
||
|
||
<!-- ACKNOWLEDGMENTS --> | ||
|
||
## Acknowledgments | ||
|
||
* [Zachary Hill](https://zacharyhill.co) | ||
* [Jake Jones](https://github.com/jakeasarus) | ||
- [Zachary Hill](https://zacharyhill.co) | ||
- [Jake Jones](https://github.com/jakeasarus) | ||
|
||
<p align="right">(<a href="#readme-top">back to top</a>)</p> | ||
|
||
|
||
<!-- MARKDOWN LINKS & IMAGES --> | ||
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --> | ||
|
||
[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 | ||
|
@@ -169,4 +167,4 @@ Project Link: [https://github.com/zachreborn/terraform-modules](https://github.c | |
[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 | ||
[Terraform-url]: https://terraform.io |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
<!-- Blank module readme template: Do a search and replace with your text editor for the following: `module_name`, `module_description` --> | ||
<!-- Improved compatibility of back to top link: See: https://github.com/othneildrew/Best-README-Template/pull/73 --> | ||
|
||
<a name="readme-top"></a> | ||
|
||
<!-- PROJECT SHIELDS --> | ||
<!-- | ||
*** I'm using markdown "reference style" links for readability. | ||
*** Reference links are enclosed in brackets [ ] instead of parentheses ( ). | ||
*** See the bottom of this document for the declaration of the reference variables | ||
*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use. | ||
*** https://www.markdownguide.org/basic-syntax/#reference-style-links | ||
--> | ||
|
||
[![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] | ||
|
||
<!-- PROJECT LOGO --> | ||
<br /> | ||
<div align="center"> | ||
<a href="https://github.com/zachreborn/terraform-modules"> | ||
<img src="/images/terraform_modules_logo.webp" alt="Logo" width="300" height="300"> | ||
</a> | ||
|
||
<h3 align="center">AWS Organization Delegated Admins Module</h3> | ||
<p align="center"> | ||
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. See the [AWS Organizations documentation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services_list.html) for more information. | ||
<br /> | ||
<a href="https://github.com/zachreborn/terraform-modules"><strong>Explore the docs »</strong></a> | ||
<br /> | ||
<br /> | ||
<a href="https://zacharyhill.co">Zachary Hill</a> | ||
· | ||
<a href="https://github.com/zachreborn/terraform-modules/issues">Report Bug</a> | ||
· | ||
<a href="https://github.com/zachreborn/terraform-modules/issues">Request Feature</a> | ||
</p> | ||
</div> | ||
|
||
<!-- TABLE OF CONTENTS --> | ||
<details> | ||
<summary>Table of Contents</summary> | ||
<ol> | ||
<li><a href="#usage">Usage</a></li> | ||
<li><a href="#requirements">Requirements</a></li> | ||
<li><a href="#providers">Providers</a></li> | ||
<li><a href="#modules">Modules</a></li> | ||
<li><a href="#Resources">Resources</a></li> | ||
<li><a href="#inputs">Inputs</a></li> | ||
<li><a href="#outputs">Outputs</a></li> | ||
<li><a href="#license">License</a></li> | ||
<li><a href="#contact">Contact</a></li> | ||
<li><a href="#acknowledgments">Acknowledgments</a></li> | ||
</ol> | ||
</details> | ||
|
||
<!-- USAGE EXAMPLES --> | ||
|
||
## 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", | ||
(module.prod_network.id) = "networkmanager.amazonaws.com" | ||
} | ||
} | ||
``` | ||
|
||
_For more examples, please refer to the [Documentation](https://github.com/zachreborn/terraform-modules)_ | ||
|
||
<p align="right">(<a href="#readme-top">back to top</a>)</p> | ||
|
||
<!-- terraform-docs output will be input automatically below--> | ||
<!-- terraform-docs markdown table --output-file README.md --output-mode inject .--> | ||
<!-- BEGIN_TF_DOCS --> | ||
## Requirements | ||
|
||
| Name | Version | | ||
|------|---------| | ||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0.0 | | ||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.0.0 | | ||
|
||
## Providers | ||
|
||
| Name | Version | | ||
|------|---------| | ||
| <a name="provider_aws"></a> [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 | | ||
|
||
## Inputs | ||
|
||
| Name | Description | Type | Default | Required | | ||
|------|-------------|------|---------|:--------:| | ||
| <a name="input_delegated_admins"></a> [delegated\_admins](#input\_delegated\_admins) | (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. | `map(string)` | n/a | yes | | ||
|
||
## Outputs | ||
|
||
No outputs. | ||
<!-- END_TF_DOCS --> | ||
|
||
<!-- LICENSE --> | ||
|
||
## License | ||
|
||
Distributed under the MIT License. See `LICENSE.txt` for more information. | ||
|
||
<p align="right">(<a href="#readme-top">back to top</a>)</p> | ||
|
||
<!-- CONTACT --> | ||
|
||
## Contact | ||
|
||
Zachary Hill - [![LinkedIn][linkedin-shield]][linkedin-url] - [email protected] | ||
|
||
Project Link: [https://github.com/zachreborn/terraform-modules](https://github.com/zachreborn/terraform-modules) | ||
|
||
<p align="right">(<a href="#readme-top">back to top</a>)</p> | ||
|
||
<!-- ACKNOWLEDGMENTS --> | ||
|
||
## Acknowledgments | ||
|
||
- [Zachary Hill](https://zacharyhill.co) | ||
- [Jake Jones](https://github.com/jakeasarus) | ||
|
||
<p align="right">(<a href="#readme-top">back to top</a>)</p> | ||
|
||
<!-- MARKDOWN LINKS & IMAGES --> | ||
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --> | ||
|
||
[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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
terraform { | ||
required_version = ">= 1.0.0" | ||
required_providers { | ||
aws = { | ||
source = "hashicorp/aws" | ||
version = ">= 4.0.0" | ||
} | ||
} | ||
} | ||
|
||
########################################################### | ||
# AWS Organization Delegated Administrator | ||
########################################################### | ||
|
||
resource "aws_organizations_delegated_administrator" "this" { | ||
for_each = var.delegated_admins | ||
account_id = each.key | ||
service_principal = each.value | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
########################################################### | ||
# AWS Organization Delegated Administrator | ||
########################################################### |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
############################################################ | ||
# AWS Organization Delegated Administrator | ||
############################################################ | ||
|
||
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_admins = { | ||
# "123456789012" = "service-abbreviation.amazonaws.com", | ||
# "123456789013" = "service-abbreviation.amazonaws.com" | ||
# } | ||
} | ||
|
||
############################################################ | ||
# General Variables | ||
############################################################ |
Oops, something went wrong.