おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-IAM-AWS Oraganizationsの内容と基本的な機能や役割

今回のテーマ:AWS Oraganizationsの内容と基本的な機能や役割

AWS Organizationsとは

複数のAWSアカウントを利用している場合、統合管理をすることが可能です。
また、IAMのアクセス管理を大きな組織で実施できるマネージドサービスとなります。
IAMとOrganizationの関係図は以下のようになります。

f:id:In-houseSE:20210221091826p:plain

AWS Organizationsで実施できる項目

  • 複数アカウントの一元管理AWSアカウントをグループ化しポリシーを適用することによって一元的に管理
  • 新規アカウント作成の自動化:コンソール/SDK/CLIAWSアカウントを新規作成し、作成内容のログを管理
  • 一括請求:複数AWSアカウントの請求を一括化

アカウントの設定

AWSアカウントのマスターアカウントを選定し、メンバーアカウントとしてほかのAWSアカウントを登録します。

仕組み

組織単位(OU)を構成し、マスターアカウントがメンバーアカウントを管理します。

例: 情報システム部(マスターアカウント所持)-広告宣伝部(メンバーアカウント)

機能セット

支払い一括代行(Consolidated Billing Only)とアカウントの全体管理(All Feature)方式のどちらかを選択します。

  • Consolidated Billing Only:支払い代行のみを実施
  • All Feature:企業内の複数アカウントを統制したい場合に選択

ボリュームディスカウントを統合するため、Consolidated Billing Onlyの方がコストメリットがあり得えます。
例:アカウントAでは一律請求。アカウントBではオンデマンドで対応

SCP(サービスコトロールポリシー)

組織単位(OU)内のメンバーアカウントに対し権限境界を設定します。

設定概要

1.マスターアカウントの作成
2.他のAWSアカウントをメンバーアカウントに組み込む
3.組織単位を作成
4.サービスコトロールポリシー(SCP)を設定する

1.マスターアカウントの作成

  • AWSマネイジメントコンソールログイン後、検索画面よりAWS Organizationsを検索しクリック

f:id:In-houseSE:20210221093951p:plain

  • 組織の作成をクリック

初期ではログインしているAWSアカウントをマスターアカウントとなるため、マスターアカウントとしたいAWSアカウントで作業するとよいです。

f:id:In-houseSE:20210221094149p:plain

2.他のAWSアカウントをメンバーアカウントに組み込む

  • マスターアカウントに★が付与されたのを確認し、メンバーアカウントを追加するためにアカウント追加をクリック

f:id:In-houseSE:20210221094954p:plain

  • アカウントの招待をクリック

f:id:In-houseSE:20210221095106p:plain

  • 詳細するアカウントのメールアドレスかAWSアカウントIDを記入後、招待をクリック

f:id:In-houseSE:20210221095405p:plain

  • 招待されたAWSアカウントのメールアドレス先に確認メールがあるのでそちらを確認

Webメールの場合ですが別のアカウントを登録する際は、
違うブラウザを起動した後でmailのリンクにあるリンクをクリック

f:id:In-houseSE:20210221095633p:plain

  • 招待された側でログインすると確認内容が表示されるため承認をクリック

f:id:In-houseSE:20210221100249p:plain

  • マスターアカウント側で登録されていることを確認

f:id:In-houseSE:20210221100416p:plain

3.組織単位を作成

  • アカウントの整理タグをクリック

AWS Organizationsで関連しているAWSアカウントの一覧と組織が表示されてます。

f:id:In-houseSE:20210221101210p:plain

  • 新規組織単位をクリックし、組織単位の名前を記入後に組織単位の作成をクリック

f:id:In-houseSE:20210221101423p:plain

  • 作成した組織単位に関連させるため、移動させたいアカウントを選択し移動をクリック

f:id:In-houseSE:20210221101644p:plain

  • 移動した後の組織単位が移動されていることを確認

最上位がRootで後は組織単位に分割しAWSアカウントを所属対応となります。

f:id:In-houseSE:20210221101743p:plain

4.サービスコトロールポリシー(SCP)を設定する

  • ポリシーのタグをクリック

f:id:In-houseSE:20210221102030p:plain

  • ポリシーリストの内容を確認し、
    AWSリソースのアクセス権限の制御をしたいので、サービスコトロールポリシーをクリック

サービスコトロールポリシーとタグポリシーを設定するのが多いですが、機能拡張によりAIサービスオプトアウトポリシーバックアップポリシーが拡張されております。

f:id:In-houseSE:20210221102126p:plain

f:id:In-houseSE:20210221102518p:plain

  • ポリシーの作成をクリック

f:id:In-houseSE:20210221103223p:plain

cf)サービスアクセスコントロール(SCP)の設定項目

要素 目的 サポートされる設定
バージョン ポリシーの処理に使用する言語構文ルールを指定 Allow,Deny
Statement ポリシー要素のコンテナとして機能
SCPには複数のステートメントを含むことができる
Allow,Deny
Statement ID ステートメントへの名称を付ける Allow,Deny
Effect SCPステートメントプリンシパルア及びアカウント内のルートアクセスを許可/拒否を定義 Allow,Deny
アクション SCPが許可/姜妃するAWSサービス/アクションを指定 Allow,Deny
NotAction SCPが除外されるAWSサービス/アクションを指定 Deny
リソース SCPが適用されるAWSリソースを指定 Deny
条件 ステートメントを実行するタイミングを指定 Deny

例: 開発部門でEC2の削除を拒否し申請しマスターアカウントを部門で削除を許可する。
今回はEC2の全操作を在宅の組織単位へ所属しているアカウントに対し拒否の設定を有効化にします。

  • 実際のポリシー作成する際はポリシー名を記入します。

f:id:In-houseSE:20210221104628p:plain

  • アカウントとして制限したいAWSサービスを決めます。

f:id:In-houseSE:20210221104754p:plain

  • サービスでEC2と検索しクリック

f:id:In-houseSE:20210221105510p:plain

  • アクションでAll actionsをクリック

f:id:In-houseSE:20210221105626p:plain

  • リソースを追加をクリック

f:id:In-houseSE:20210221105739p:plain

  • AWSサービス名と[Resource type]を指定しリソースの追加をクリック

f:id:In-houseSE:20210221105901p:plain

  • 条件を追加をクリック

f:id:In-houseSE:20210221110012p:plain

  • サンプルですが現在時刻からとするので、
    条件キー:aws:CurrentTime、演算子:DateEqualsを指定し条件の追加をクリック

f:id:In-houseSE:20210221110143p:plain

設定したJSONファイルがこちら

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Deny",
            "Action": [
                "ec2:*"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "DateEquals": {
                    "aws:CurrentTime": []
                }
            }
        }
    ]
}
  • この状態でポリシーの作成をクリック

f:id:In-houseSE:20210221110339p:plain

  • 新しいSCPが作成できてるのを確認

f:id:In-houseSE:20210221110437p:plain

  • 作成したSCPを組織単位に付与するため、アカウントの整理タグをクリック

f:id:In-houseSE:20210221110810p:plain

  • 今回は在宅の組織単位に対し、developerのポリシーを適用(アタッチ)します。

f:id:In-houseSE:20210221111031p:plain

f:id:In-houseSE:20210221111111p:plain

  • 適用(アタッチ)したいポリシーをクリック

f:id:In-houseSE:20210221111221p:plain

  • デフォルトでFullAWSAccessが有効化されているため、制限する場合はFullAWSAccessのSCPを解除(デタッチ)をクリック

f:id:In-houseSE:20210221111627p:plain

  • 実際の確認

f:id:In-houseSE:20210221111655p:plain

今回のテーマは以上です。