CloudFormation で AWS アカウントを追加する
yamory のクラウドで AWS アカウントをスキャンするために、CloudFormation で AWS アカウントを yamory に追加する方法を説明します。
はじめに
yamory と AWS アカウントを追加するためには、AWS の IAM Role ベースの連携を行います。
yamory と連携するための IAM Role を作成し、Role に対して必要な権限を付与します。
この IAM Role の ARN を yamory に登録していただくことでスキャンが行えるようになります。
また、必要な権限を以下のページにまとめております。
CloudFormation を利用した AWS アカウント連携手順
以下の手順で、CloudFormation を利用して AWS アカウントを追加できます。
- アカウント追加ウィザードの開始
- CloudFormation のスタックの発行と登録
- IAM Role ARN の登録
1. アカウント追加ウィザードの開始
「クラウド」カテゴリの「アカウント」画面から「新しいアカウントを追加」ボタンをクリックします。
「アカウント毎に CloudFormation で連携」を選択します。
2. CloudFormation のスタックの発行と登録
CloudFormation のスタックの作成画面が表示されます。
ここで、クラウドでのスキャンに必要な IAM Role の信頼ポリシーを作成する CloudFormation 用のスタックテンプレートが表示されます。
また、「外部 ID 再生成」ボタンで、アカウント毎に外部 ID を再生成できます。
外部 ID とは、権限を与える際に一意の識別子を提供し、混乱する代理問題 を回避するために役立てることができます。
スタックテンプレートの利用には、
の2つの方法があります。
テンプレートを yamory でダウンロードして AWS でテンプレートファイルとして利用する方法
モーダル内のダウンロードボタンをクリックし、テンプレートを YAML ファイルとして保存します。
(YAML ファイルはクラウドでのスキャンに必要な IAM Role の信頼ポリシーを作成するために使用します)
次に、クラウドでスキャンしたい AWS アカウントにログインし、CloudFormation の管理コンソールを開きます。
管理コンソールの左側のメニューから「スタック」をクリックしてスタック一覧画面を開き、スタックの一覧が表示されている状態で、右上の「スタックの作成」ボタンをクリックします。
ボタンメニューから「新しいリソースを使用(標準)」を選択してください。
登録時にアップロードしたテンプレートファイルは S3 に保存されます。
任意のスタック名を入力してください。
「スタックオプションの設定」での個別の設定は必要ありません。
「次へ」ボタンを押してください。
入力された内容を確認し、以下のチェックボックスにチェックをして「送信」ボタンを押してください。
スタックの一覧画面に、登録後のスタック名が表示されます。
詳細画面から「リソース」タブを選択し、作成された AWS IAM Role をクリックしてください。
表示された IAM Role ARN をコピーしてください。
クイック作成リンクから直接 AWS でスタックを作成する方法
モーダル内の「CloudFormation を作成する」リンクから直接 CloudFormation のスタック作成画面に遷移できます。
任意のスタック名を入力してください。
「アクセス許可」での個別の設定は必要ありません。
入力された内容を確認し、以下のチェックボックスにチェックをして「スタックの作成」ボタンを押してください。
スタックの一覧画面に、登録後のスタック名が表示されます。
詳細画面から「出力」タブを選択し、キー「YamoryConnectRoleArn」の値をコピーしてください。
3. IAM Role ARN の登録
yamory 側の画面へ戻り、コピーした ARN を貼り付けてから「アカウントを追加」ボタンをクリックします。
以上で AWS アカウントの CloudFormation を利用した追加作業は完了になります。
クラウドアセットスキャン機能を有効化する
yamory のクラウドアセットスキャン機能を On にすると、クラウドのスキャンと同時に連携されたクラウドに登録されているアセット(アプリライブラリ、ホスト、コンテナ)に対するスキャンを行うことができます。
2. CloudFormation のスタックの発行と登録で IAM ポリシーを作成する際に「クラウドアセットスキャン」を On にします。
クラウドアセットスキャンに必要なポリシーが追加された CloudFormation テンプレートが生成されますので
その後は同様に CloudFormation のスタックを作成して AWS アカウントの連携を行ってください。
CloudFormation 連携済みアカウントのクラウドアセットスキャン設定
既に CloudFormation で連携しているアカウントでもクラウドアセットスキャン機能を後から有効化できます。
「その他」メニューから「アセットスキャン設定」をクリックします。
左メニューより「スキャン有効化」を選択し「クラウドアセットスキャン」を On にします。
クラウドアセットスキャンに必要なポリシーが追加された CloudFormation テンプレートが生成されます。
「ダウンロード」アイコンをクリックしてテンプレートをファイル保存してください。
次に、クラウドでスキャンしたい AWS アカウントにログインし、CloudFormation の管理コンソールを開きます。
管理コンソールの左側のメニューから「スタック」をクリックしてスタック一覧画面を開き、スタックの一覧が表示されている状態で、右上の「更新」ボタンをクリックします。
「既存テンプレートを置き換える」>「テンプレートファイルのアップロード」を選択して、先ほど保存したファイルをアップロードしてください。
更新時にアップロードしたテンプレートファイルは S3 に保存されます。
「スタックオプションの設定」での個別の設定は必要ありません。
「次へ」ボタンを押してください。
入力された内容を確認し、以下のチェックボックスにチェックをして「送信」ボタンを押してください。
更新が正常終了したら完了です。
連携内容を表示する
登録された連携内容は「その他」ボタンメニューの「連携内容を表示」で表示できます。
「連携内容を表示」機能では外部 ID の再生成が可能です。