yamory の使い方

yamory へようこそ! yamory の基礎知識と使い方をご紹介します。

CloudFormation で AWS 管理アカウントを追加する

yamory のクラウドで AWS 管理アカウントをスキャンするために、CloudFormation で AWS 管理アカウントを yamory に追加する方法を説明します。

はじめに

yamory と AWS 管理アカウントを追加するためには、AWS の IAM Role ベースの連携を行います。
yamory と連携するための IAM Role を作成し、Role に対して必要な権限を付与します。
この IAM Role の ARN の他、管理アカウント連携に必要な StackSet の ARN を yamory に登録していただくことでスキャンが行えるようになります。

また、必要な権限を以下のページにまとめております。

AWS のポリシーについて

CloudFormation を利用した AWS 管理アカウント連携手順

以下の手順で、CloudFormation を利用して AWS 管理アカウントを追加できます。

  1. 組織連携ウィザードの開始
  2. CloudFormation のスタックテンプレートの発行と登録
  3. IAM Role ARN、StackSet ARN の登録

1. 組織連携ウィザードの開始

「クラウド」カテゴリの「アカウント」画面から「新しいアカウントを追加」ボタンをクリックします。

<クラウドスキャン用アカウント画面>

「組織に CloudFormation で連携」を選択します。

連携方法選択 CloudFormation 画面

2. CloudFormation のスタックテンプレートの発行と登録

CloudFormation のスタックテンプレートの作成画面が表示されます。

CloudFormation テンプレートの作成画面

「外部 ID 再生成」ボタンで、アカウント毎に外部IDを再生成できます。

外部 ID とは、権限を与える際に一意の識別子を提供し、混乱する代理問題 を回避するために役立てることができます。

スタックテンプレートの利用には、

の2つの方法があります。

テンプレートを yamory でダウンロードして AWS で登録する方法

モーダル内のダウンロードボタン (「外部ID再生成」ボタンの右のアイコン) をクリックし、テンプレートを YAML ファイルとして保存します。
(YAML ファイルはクラウドでのスキャンに必要な IAM Role の信頼ポリシーを作成するために使用します)

CloudFormation テンプレートのダウンロード

次に、AWS の管理アカウントにログインし、CloudFormation の管理コンソールを開きます。
管理コンソールの左側のメニューから「スタック」をクリックしてスタック一覧画面を開き、スタックの一覧が表示されている状態で、右上の「スタックの作成」ボタンをクリックします。

<CloudFormation管理画面>

ボタンメニューから「新しいリソースを使用(標準)」を選択してください。
登録時にアップロードしたテンプレートファイルは S3 に保存されます。

<CloudFormationスタック作成画面>

任意のスタック名と、OrganizationalUnitIds に連携する組織単位 ID(OU ID)を入力してください。

委任管理者アカウントで連携する場合は、CallAs を DELEGATED_ADMIN に変更してください。

CloudFormation のスタック命名画面

「スタックオプションの設定」での個別の設定は必要ありません。
「次へ」ボタンを押してください。

入力された内容を確認し、以下のチェックボックスにチェックをして「送信」ボタンを押してください。

<CloudFormation Stack 送信画面>

スタックの一覧画面に、登録後のスタック名が表示されます。

CloudFormation のスタック送信画面

詳細画面から「出力」タブを選択し、キー「ManagementAccountRoleArn」と「StackSetArn」の値をコピーしてください。

※スタック作成画面にて「MemberRoleName」を変更した場合は、「MemberRoleName」もコピーが必要になります。

<CloudFormation Stack 出力画面>

クイック作成リンクから直接 AWS でスタックを作成する方法

モーダル内の「CloudFormation を作成する」リンクから直接 CloudFormation のスタック作成画面に遷移できます。

CloudFormation クイック作成リンク

任意のスタック名と、OrganizationalUnitIds に連携する組織単位 ID(OU ID)を入力してください。

<CloudFormationスタック作成画面>

「アクセス許可」での個別の設定は必要ありません。
入力された内容を確認し、以下のチェックボックスにチェックをして「スタックの作成」ボタンを押してください。

<CloudFormation Stack 送信画面>

スタックの一覧画面に、登録後のスタック名が表示されます。

CloudFormation のスタック送信画面

詳細画面から「出力」タブを選択し、キー「ManagementAccountRoleArn」と「StackSetArn」の値をコピーしてください。

※スタック作成画面にて「MemberRoleName」を変更した場合は、「MemberRoleName」もコピーが必要になります。

<CloudFormation Stack 出力画面>

3. IAM Role ARN、StackSet ARN の登録

yamory 側の画面へ戻り、コピーした「ManagementAccountRoleArn」を「IAM Role ARN」へ、「StackSetArn」を「StackSet ARN」へ貼り付けてから「アカウントを追加」ボタンをクリックします。

※スタック作成画面にて「MemberRoleName」を変更した場合は、yamory 側の「MemberRoleName」も変更してください。

アカウント連携画面

以上で AWS 管理アカウントの CloudFormation を利用した追加作業は完了になります。

クラウドアセットスキャン機能を有効化する

yamory のクラウドアセットスキャン機能を On にすると、クラウドのスキャンと同時に連携されたクラウドに登録されているアセット(アプリライブラリ、ホスト、コンテナ)に対するスキャンを行うことができます。

2. CloudFormation のスタックテンプレートの発行と登録で IAM ポリシーを作成する際に「クラウドアセットスキャン」を On にします。
クラウドアセットスキャンに必要なポリシーが追加された CloudFormation テンプレートが生成されますので
その後は同様に CloudFormation のスタックを作成して AWS アカウントの連携を行ってください。

IAM ポリシー作成画面

CloudFormation 連携済みアカウントのクラウドアセットスキャン設定

既に CloudFormation で連携しているアカウントでもクラウドアセットスキャン機能を後から有効化できます。

「その他」メニューから「アセットスキャン設定」をクリックします。

その他ボタンメニュー画面

左メニューより「スキャン有効化」を選択し「クラウドアセットスキャン」をOnにします。
クラウドアセットスキャンに必要なポリシーが追加された CloudFormation テンプレートが生成されます。
「ダウンロード」アイコンをクリックしてテンプレートをファイル保存してください。

クラウドアセット設定 CloudFormation 連携画面

次に、クラウドでスキャンしたい AWS アカウントにログインし、CloudFormation の管理コンソールを開きます。
管理コンソールの左側のメニューから「スタック」をクリックしてスタック一覧画面を開き、スタックの一覧が表示されている状態で、右上の「更新」ボタンをクリックします。

<CloudFormation更新画面>

「既存テンプレートを置き換える」>「テンプレートファイルのアップロード」を選択して、先ほど保存したファイルをアップロードしてください。
更新時にアップロードしたテンプレートファイルは S3 に保存されます。

<CloudFormationファイル選択画面>

「スタックオプションの設定」での個別の設定は必要ありません。
「次へ」ボタンを押してください。

入力された内容を確認し、以下のチェックボックスにチェックをして「送信」ボタンを押してください。

<CloudFormation Stack 送信画面>
CloudFormation 更新結果画面

更新が正常終了したら完了です。

連携内容を表示する

登録された連携内容は「その他」ボタンメニューの「連携内容を表示」で表示できます。

その他ボタンメニュー画面

「連携内容を表示」機能では外部 ID の再生成が可能です。