LoginSignup
7
11

More than 5 years have passed since last update.

「CloudMapper」を試してみた

Last updated at Posted at 2018-02-25

AWSで環境構築してみたものの、自分が設計した通りの構成図になっているか不安だったので、ちょうどそこにcloudmapperなるものがオープンソース化されたということなので、試してみました。
ここに記載されている内容は主に
https://github.com/duo-labs/cloudmapper/blob/master/README.md
を参考にしています

環境

macOS High Sierra ver10.13.3
python3のインストール済み

cloudmapperのインストール

$ git clone https://github.com/duo-labs/cloudmapper.git
$ cd $_

必要なツール等をインストール

$ brew install autoconf automake libtool jq

python環境での実行なのでvirtualenvを使用

$ pip3 install --upgrade pip
$ pip3 install virtualenv
#### 以下、cloudmapperディレクトリ配下で実行
$ virtualenv venv
$ source venv/bin/activate
$ pip3 install -r requirements.txt

これでとりあえずは起動できるところまできました

demoファイルで実行してみる

$ python cloudmapper.py prepare --config config.json.demo --account demo
$ python cloudmapper.py serve

ブラウザで確認 http://127.0.0.1:8000/

FireShot Capture 15 - Duo CloudMapper - http___localhost_8000_.png

表示されたら動作としてはOKです

ではいよいよ、自分で構築したAWS環境のネットワーク図を作成します

configファイルの作成

$ cp config.json.demo config.json
config.json

{  "accounts":
    [
        {"id": "123456789012", "name": "aws_cloudmapper", "default": true}
    ],
    "cidrs":
    {
        "1.1.1.1/32": {"name": "SF Office"},
        "2.2.2.2/28": {"name": "NY Office"}
    }
}

nameの部分のみを適当に変えます

cloudmapper専用のポリシーを作成

cloudmapperが対象のAWSアカウントにアクセスが可能な状態にする必要があります

AWSコンソールから「IAM」→「ポリシー」→「ポリシーの作成」に移動します

ポリシーの作成画面でJSONを選択して以下の内容で作成します
ポリシー名はcloudmapper-readonlyにしました(好きな命名にしてください)

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Resource": "*",
            "Action": [
                "ec2:DescribeRegions",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeVpcPeeringConnections",
                "ec2:DescribeInstances",
                "ec2:DescribeNetworkInterfaces",
                "rds:DescribeDBInstances",
                "elasticloadbalancing:DescribeLoadBalancers"
            ]
        }
    ]
}

IAMユーザーの作成

上記で作成したcloudmapper-readonly権限をもったIAMユーザーを作成します。
発行されたアクセスキーIDとシークレットキーは次のステップで使用するので、保管しておいてください

~/.aws/configの設定

~/.aws/config
[profile cloudmapper]
output = json
region = ap-northeast-1

~/.aws/credentialsの設定

先ほど作成したIAMユーザーのkeyを設定

~/.aws/credentials
[cloudmapper]
aws_access_key_id = ****************
aws_secret_access_key = *******************************

これでcloudmapperがAWSにアクセス可能となります

ネットワーク構成図を作成

さて、いよいよ自分で構築したAWS環境の構成図を作成したと思います

githubからインストールしたcloudmapperディレクトリに移動します。そしてAWSから構築した環境の情報を取得します。

$ cd ~/cloudmapper
$ source venv/bin/activate
(venv) $ ./collect_data.sh --account aws_cloudmapper --profile cloudmapper

無事取得されたらaws_cloudmapperディレクトリが作成されます

そしていよいよネットワーク構成図を出力します

(venv) $ python cloudmapper.py prepare --account aws_cloudmapper
$ python cloudmapper.py serve

ブラウザで確認 http://127.0.0.1:8000/

表示されたら成功です。

簡単ではありますが、以上となります。

7
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
11