[AWS] AWS Configを有効化する。

こんにちは、与儀です。

AWS Configは、AWSのリソースの設定情報や変更履歴を残しておくことができるサービスです。
AWS Configの管理画面から履歴を、リソースID等を指定することで閲覧することができます。

例えば、誤ってVPCの一部設定を消したり変更してしまった場合、元の設定値がわからなくて
戻せなくなる場合があります。そういう場合にAWS Configを有効化していれば、設定情報を
確認して再設定することができます。
(サービス名を呼ぶときは、AWSを省いて、「Config」だけでいいかもしれないですが、
 これだけだとしっくりこないので、「AWS Config」と呼んでおきます。。)

現在、AWS Configは下記のリソースに対して設定可能となっています。
・EC2
・VPC
・EBS
・CloudTrail
・IAM

では、AWS Configを有効化してみます。

AWS Configのダッシュボードへアクセス、「Get Started Now」を押します。

ほぼデフォルトで下記のようにして、今回は「Amazon SNS Topic」のチェックは外します。「Continue」を押します。
裏で設定ファイルが出力されるS3バケットも新規作成します。(ここではデフォルトで設定されるバケット名
「config-bucket-<アカウントID>」で作成します。)

すると、IAMロールの作成の画面に移るので、そのまま「許可」を押します。
これはAWS Configが各サービスへアクセスするのを許可するためのIAMロールになります。

ちなみにポリシードキュメントは下記のようになっていました。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "appstream:Get*",
        "autoscaling:Describe*",
        "cloudformation:DescribeStacks",
        "cloudformation:DescribeStackEvents",
        "cloudformation:DescribeStackResource",
        "cloudformation:DescribeStackResources",
        "cloudformation:GetTemplate",
        "cloudformation:List*",
        "cloudfront:Get*",
        "cloudfront:List*",
        "cloudtrail:DescribeTrails",
        "cloudtrail:GetTrailStatus",
        "cloudwatch:Describe*",
        "cloudwatch:Get*",
        "cloudwatch:List*",
        "config:Put*",
        "directconnect:Describe*",
        "dynamodb:GetItem",
        "dynamodb:BatchGetItem",
        "dynamodb:Query",
        "dynamodb:Scan",
        "dynamodb:DescribeTable",
        "dynamodb:ListTables",
        "ec2:Describe*",
        "elasticache:Describe*",
        "elasticbeanstalk:Check*",
        "elasticbeanstalk:Describe*",
        "elasticbeanstalk:List*",
        "elasticbeanstalk:RequestEnvironmentInfo",
        "elasticbeanstalk:RetrieveEnvironmentInfo",
        "elasticloadbalancing:Describe*",
        "elastictranscoder:Read*",
        "elastictranscoder:List*",
        "iam:List*",
        "iam:Get*",
        "kinesis:Describe*",
        "kinesis:Get*",
        "kinesis:List*",
        "opsworks:Describe*",
        "opsworks:Get*",
        "route53:Get*",
        "route53:List*",
        "redshift:Describe*",
        "redshift:ViewQueriesInConsole",
        "rds:Describe*",
        "rds:ListTagsForResource",
        "s3:Get*",
        "s3:List*",
        "sdb:GetAttributes",
        "sdb:List*",
        "sdb:Select*",
        "ses:Get*",
        "ses:List*",
        "sns:Get*",
        "sns:List*",
        "sqs:GetQueueAttributes",
        "sqs:ListQueues",
        "sqs:ReceiveMessage",
        "storagegateway:List*",
        "storagegateway:Describe*",
        "trustedadvisor:Describe*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject*"
      ],
      "Resource": [
        "arn:aws:s3:::config-bucket-<アカウントID>/AWSLogs/<アカウントID>/*"
      ],
      "Condition": {
        "StringLike": {
          "s3:x-amz-acl": "bucket-owner-full-control"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketAcl"
      ],
      "Resource": "arn:aws:s3:::config-bucket-<アカウントID>"
    },
    {
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:ap-northeast-1:<アカウントID>:config-topic"
    }
  ]
}

設定直後は、まだ情報収集中のようです、しばらく待ちます。

「Resource type」を「EC2: Instance」に選択して、「Lookup」を押すと、EC2インスタンスの情報が出てきました!
ここで、「Resource identifier」のインスタンスID「i-7e195fdb」のリンクを選択すると、

インスタンスの詳細情報がでてきます。Relationshipsの項目では、関連するリソースのIDも表示されています。

このようにAWS Configの設定を有効化することができました。簡単ですね。

参考リンク
AWS Config 製品の詳細
Set Up AWS Config Using the Console