gpt4 book ai didi

amazon-web-services - 在多个 AWS Organizations 账户上部署资源

转载 作者:行者123 更新时间:2023-12-04 07:44:10 24 4
gpt4 key购买 nike

让我给这个问题一些背景。
我正在尝试创建一个 terraform 脚本,该脚本使用一些账户以及这些账户中的一些资源来部署 AWS 组织。
所以,问题是我似乎无法弄清楚如何在多个帐户上创建资源 在运行时间 .这意味着我想在同一脚本上创建的帐户上创建资源。
“工作流程”将是这样的

  • 脚本创建 AWS 组织
  • 相同的脚本创建 AWS Organizations 账户
  • 相同的脚本在创建的帐户上创建一个 S3 存储桶

  • 这是可能做的事情吗?我知道可以通过执行以下操作来“冒充”用户。
    provider "aws" {
    alias = "dns"
    assume_role {
    role_arn = "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME"
    session_name = "SESSION_NAME"
    external_id = "EXTERNAL_ID"
    }
    }
    但是,在将帐户创建为 AWS-organization-account terraform 模块的某种输出之后,我可以获得这些信息吗?
    也许还有另一种方法可以做到这一点,我只需要一些阅读 Material 。

    最佳答案

    您可以这样做,但您可能希望将其中一些东西分开以最小化爆炸半径,因此它不是全部在一个 terraform apply 中。或 terraform destroy .
    作为一个简单的示例,您可以执行以下操作:

    resource "aws_organizations_organization" "org" {
    aws_service_access_principals = [
    "cloudtrail.amazonaws.com",
    "config.amazonaws.com",
    ]

    feature_set = "ALL"
    }

    resource "aws_organizations_account" "new_account" {
    name = "my_new_account"
    email = "john@doe.org"

    depends_on = [
    aws_organizations_organization.org,
    ]
    }

    provider "aws" {
    alias = "new_account"

    assume_role {
    role_arn = "arn:aws:iam::${aws_organizations_account.new_account.id}:role/OrganizationAccountAccessRole"
    session_name = "new_account_creation"
    }
    }

    resource "aws_s3_bucket" "bucket" {
    provider = aws.new_account

    bucket = "new-account-bucket-${aws_organizations_account.new_account.id}"
    acl = "private"
    }
    以上使用 default OrganizationAccountAccessRole IAM role在子账户中创建,然后在该账户中创建 S3 存储桶。

    关于amazon-web-services - 在多个 AWS Organizations 账户上部署资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67283766/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com