バナー画像

AWSのOrganizatinsについてまとめています。

AWS Organizationsは、メンバーアカウントを作成・管理する機能

AWS Organizationsで、AWSアカウントの作成、リソースの割当、アカウントのグループ化、アカウントやグループポリシーの適用、管理下の全アカウントの請求の一本化が可能です。

AWS Organizationsは、追加料金なしで 利用できます。

AWS Organizationsの利点

マルチアカウントの管理が可能。AWS CLI、SDK、API経由でアカウントを作成し、AWS CloudFormation StackSetsを使ってアカウントにリソースとアクセス許可を一元的にプロビジョニングできます。

新規アカウントのグループ化が可能。組織単位(OU)や、単一のアプリケーション、サービス提供するアカウントグループにグループ化できます。

アカウントの管理とモニタリングが可能。アカウント間での読み取り専用セキュリティアクセスの提供や、Amazon GuardDutyでの脅威の検出、IAM Access Analyzerで想定外のリソースへのアクセスの確認、Amazon Macieによる機密データの保護などをおこなうことができます。

Amazon Single Sign-On (SSO)でActive Directoryを使ってAWS アカウントとリソースへのアクセスの提供が可能。サービスコントロールポリシーをユーザ、アカウント、OUに適用し、AWS リソース、サービス、リージョンへのアクセス制御も可能です。

組織内のアカウントでAWSリソースを共有するには、AWS Resource Allocation Management (RAM) を使用します。AWS Virtual Private Cloud (VPC) サブネットを組織全体で共有したり、AWS License Managerでソフトウェアライセンスを一元的に管理したり、AWS Service Catalogでアカウント間でITサービスとカスタム製品のカタログを共有することが可能です。AWS CloudTrailを使うことで、コンプライアンスに対する監査が可能。メンバーアカウントが変更できないクラウド環境内のアクティビティのログを作成します。

Organizations を使う大きなメリットは、組織のアカウントで 1 つにまとめた一括請求。アカウント全体のリソースから使用量の表示、AWS Cost Explorerでコストの追跡、AWS Compute Optimizer でコンピューティングリソースの使用量を最適化などの一元管理が可能です。

AWS Organizationsの使い方

AWS Organizationsは、AWSマネジメントコンソールから操作が可能です。

関連)Organizations Management Console

AWSアカウントとして、ルートユーザ(管理アカウント)が既に作成されています。

AWSアカウントを追加するには、アカウント名、Eメールアドレス、IAMロール名、タグ付けをおこなって新規に作成するか、「既存のAWSアカウントを招待」を選んで、既存ユーザに招待のEメールを送る方法があります。

「サービス」の画面では、AWSサービスに対して「信頼できるアクセスを有効にする」設定が可能です。ただし、公式サイトによるとこの画面で有効化をおこなうのではなく、他のAWSサービスのコンソールを使用して、AWS Organizationsでの信頼できるアクセスを有効化または無効化することが推奨されています。

サービス名をクリックすると、「信頼されたアクセスを有効にする」ボタンが表示され、クリックすると有効化されます。以下は、AWS Backupの「信頼されたアクセスを有効にする」画面です。

「ポリシー」の画面では、AI サービスのオプトアウトポリシー、バックアップポリシー、サービスコントロールポリシー、タグポリシーの有効化、無効化が可能です。例えば、バックアップポリシーを有効化すると、組織全体のバックアップ計画をデプロイして、バックアップ計画の実行方法の一貫性を確保できます。

ポリシーを有効化するには、ポリシータイプ名をクリックして、「○○ポリシーを有効にする」ボタンをクリックします。以下は、サービスコントロールポリシー(SCP)の有効化の画面です。

メンバーアカウント作成の自動化

AWS Organizationsの操作は、AWSマネジメントコンソール以外にも、AWS CLI(コマンドラインインタフェース)や、SDKを使って各言語からの操作が可能です。AWS Organizaionsを操作するには、IAMユーザやIAMロールに、Organizationzを操作する権限を与えておく必要があります。

【関連記事】
AWSのIAMは、AWSサービスとリソースへのアクセス管理とアクセス分析が可能

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                 "organizations:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

以下は、Python言語でSDKを使ってユーザアカウントを作成する例です。create_accountのパラメータには、アカウント名、メールアドレス、メンバーアカウントのIAMユーザにBilling情報へのアクセスを許可するかどうか(デフォルトでallow)、IAMロール名(デフォルトでOrganizationAccountAccessRole)を指定します。

import boto3
orgs = boto3.client('organizations',region_name='us-east-1')
createAccountRequest = orgs.create_account(
    "AccountName": "membername1",
    "Email": "membermail1",
    "IamUserAccessToBilling": "allow",
    "RoleName": "OrganizationAccountAccessRole"
    )

メンバーアカウントの作成は非同期で行われます。そのため、CreateAccountAPIのレスポンスに入っているリクエストIDを指定して、以下のように「メンバー作成が成功したか」のステータスをポーリングする仕組みが必要になります。

createAccountRequestId = createAccountRequest["CreateAccountStatus"]["Id"]
while orgs.describe_create_account_status(CreateAccountRequestId=createAccountRequestId)["CreateAccountStatus"]["State"] != 'SUCCEEDED':
        time.sleep(5)

関連)AWS Organizationsを利用したアカウント作成の自動化 | Amazon Web Services ブログ

AWS Organizationsのまとめ

ポテパンダの一言メモ
  • AWS Organizationsは、メンバーアカウントを作成、管理する機能
  • AWSマネジメントコンソールや、AWS CLI、SDKから操作が可能
  • SDKを使って、メンバーアカウント作成の自動化が可能

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。