コンテンツにスキップ

AWS連携認証設定#

AWS 連携を利用することで、FutureVuls に以下の機能を追加できます。 これらの機能を利用するための AWS 認証設定を実施します。

AWS 認証情報の設定

FutureVuls の1つのグループに対して、AWS 認証情報は 1つのみ 登録可能です。 AWS 環境が複数ある場合は、別グループに分けて登録してください。 なお、1つの AWS アカウントを複数のグループに対して登録可能です。

連携手順#

AWS の認証設定には、「IAM ロールを使った認証方法」と「API キーを使った認証方法」の2種類があります。 基本的にはよりセキュアで設定が簡単な IAM ロールを使う方法を推奨します。

実行ユーザへの権限付与

AWS CloudFormation のスタック作成時には、スタック作成の実行ユーザ(または、CloudFormation を実行するサービスロール)に以下の実行権限を付与してください。

また、スタックを削除する場合には、以下の実行権限を付与してください。

  • iam:DeleteRole
  • iam:DeleteRolePolicy

IAMロールを使った認証方法#

FutureVuls の グループ設定 > 外部連携 を選択し、AWS の中にある「追加」ボタンを押します。

image

「IAM ロールでの認証(推奨)」を選択し、連携したい AWS アカウントの AWSアカウントIDリージョン を入力し、「次へ」ボタンを押します。

image

「AWS CloudFormation の設定画面へ」のボタンを押して、CloudFormation により FutureVuls のテンプレートからスタックを作成します。 作成後、パラメータのタブから FutureVulsExternalID の値を取得してください。

image

既に他のグループで AWS 連携設定済みの場合

この場合、新しく CloudFormation スタックを作成する必要はありません。 既存の設定を再利用します。

  1. AWSマネジメントコンソールにログインし、 CloudFormation のサービスページを開きます。
  2. スタックの一覧から、既存の FutureVulsAssumeRole スタックを選択します。
  3. 「出力(Outputs)」タブを選択し、 FutureVulsExternalID の値を取得します。
  4. FutureVuls の設定画面に戻り、取得した FutureVulsExternalID を入力して「次へ」ボタンを押します。

スタックの作成後 (既に他のグループで AWS 連携設定済みの方は、既存の設定より FutureVulsExternalID を取得後)、再度 FutureVuls の設定画面に戻り、取得した FutureVulsExternalID を入力して「次へ」ボタンを押します。 この時に AWS 認証が有効かどうかが判定され、有効な場合は「AWS アカウント ID が登録されました」と表示されます。

image

以下のように認証情報が表示されるようになれば、AWS 認証設定は完了です。

image

APIキーを使った認証方法#

API キーによる認証方法は、セキュリティの観点から AWS では非推奨とされています。 この方法よりも上記の IAM ロールを使った認証方法を推奨しています。 本設定方法は IAM ロールの認証方法が利用できない環境でのみ選択してください。

以下に AccessKey, SecretKey で連携する方法を説明します。

IAMロールを使った認証方法」と同様に AWS 認証情報の追加の画面に移動します。 API キーでの認証を選択し、「AWS CloudFormation の設定画面へ」のボタンを押します。

image

作成された IAM で API キーを発行し、 アクセスキー・シークレットキー・リージョン を入力して「次へ」ボタンを押します。 この時に AWS 認証が有効かどうかが判定され、有効な場合は「AWS アカウント ID が登録されました」と表示されます。

image

以下のように認証情報が表示されれば完了です。

image

設定削除#

AWS 認証情報のところにあるゴミ箱ボタンをクリックしてください。 AWS 環境から FutureVuls AWS 連携に関連する認証情報を削除したい場合は、CloudFormation スタックの FutureVulsAssumeRole を削除してください。

image

FutureVulsで利用するポリシー#

FutureVuls AWS 連携で利用する AWS ポリシーは以下の通りです。 今後、連携強化のために変更する可能性があります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeTags",
                "ssm:DescribeInstanceInformation",
                "ssm:ListDocuments",
                "ssm:ListCommandInvocations",
                "ecr:GetAuthorizationToken",
                "ecr:DescribeImages",
                "ecr:BatchGetImage",
                "ecr:DescribeImageScanFindings",
                "ecr:GetRepositoryPolicy",
                "ecr:DescribeRepositories",
                "inspector2:ListFindings",
                "inspector2:ListCoverage",
                "lambda:GetFunction",
                "lambda:ListFunctions"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:DescribeDocument",
                "ssm:SendCommand"
            ],
            "Resource": "arn:aws:ssm:*:*:document/FutureVuls*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Effect": "Allow"
        }
    ]
}