41
TIS株式会社 久保智成 Config Rulesを1年ほど 使い続けてわかったこと

Config rulesを1年ほど使い続けて分かったこと

Embed Size (px)

Citation preview

Page 1: Config rulesを1年ほど使い続けて分かったこと

TIS株式会社

久保智成

Config Rulesを1年ほど 使い続けてわかったこと

Page 2: Config rulesを1年ほど使い続けて分かったこと

• 久保智成

– TIS株式会社所属

– 過去はITインフラ全般(主にキャリア向け)/自社インフラ基盤設計

– ここ数年AWS系多め

– AWSアライアンス系のタスク多め

• 趣味

– IT界隈のおっさんと飲んだくれる

• 好きなAWSサービス

– Amazon S3 とにかくS3

• もろもろのid

– @tomonari_q

• このごろ書いてるもの

お前だれ?

Page 3: Config rulesを1年ほど使い続けて分かったこと

今日は Config Rules のお話

Page 4: Config rulesを1年ほど使い続けて分かったこと

ちょっと確認

Page 5: Config rulesを1年ほど使い続けて分かったこと

Security Best Practices使ってますか?

• AWS共有責任モデル

• AWSでのアセットの定義と分類

• AWSで資産を保護するためのISMSの設計

• AWSアカウント、IAMユーザー、グループ、およびロールの管理

• Amazon EC2インスタンスへのOSレベルのアクセスの管理

• データの保護

• オペレーティングシステムとアプリケーションの保護

• インフラストラクチャの保護

• セキュリティモニタング、アラート監査証跡およびイシデント対応の管理

Page 6: Config rulesを1年ほど使い続けて分かったこと

• AWS共有責任モデル

• AWSでのアセットの定義と分類

• AWSで資産を保護するためのISMSの設計

• AWSアカウント、IAMユーザー、グループ、およびロールの管理

• Amazon EC2インスタンスへのOSレベルのアクセスの管理

• データの保護

• オペレーティングシステムとアプリケーションの保護

• インフラストラクチャの保護

• セキュリティモニタング、アラート監査証跡およびイシデント対応の管理

だいたいの考え方が 書かれています

Security Best Practices使ってますか?

Page 7: Config rulesを1年ほど使い続けて分かったこと

Security at Scale:Governance in AWS AWS Services Governanceenabling feature

Amazon EC2

Amazon EC2 idempotency instance launch

Amazon EC2 resource tagging

Amazon Linux AMIs

Amazon EC2 Dedicated Instances

Amazon EC2 instance launch wizard

Amazon EC2 security groups

Elastic Load Balancing Elastic Load Balancing traffic distribution

Amazon VPC

Amazon VPC

Amazon VPC logical isolation

Amazon VPC network ACLs

Amazon VPC private IP addresses

Amazon VPC security groups

On-premise hardware/software VPN connections

Amazon Route 53 Amazon Route 53 latency resource record sets

Route 53 health Checks and DNS failover

AWS Direct Connect AWS Direct Connect

Amazon S3

Amazon S3 Access Control Lists (ACLs)

Amazon S3 Bucket Policies

Amazon S3 Query String Authentication

Amazon S3 Client-Side Encryption

Amazon S3 Server-Side Encryption

Amazon S3 Object Expiration

Amazon S3 server access logs

Amazon S3 TCP selective acknowledgement

Amazon S3 TCP window scaling

Amazon Glacier Amazon Glacier vault inventory

Amazon Glacier archives

Amazon EBS Amazon EBS snapshots

AWS Import/Export AWS Import/Export bulk datano…

AWS Storage Gateway AWS Storage Gateway integration

AWS Storage Gateway APIs

AWS Services Governanceenabling feature

Amazon CloudFront

Amazon CloudFront

Amazon CloudFront access logs

Amazon RDS Amazon RDS database logs

Amazon RDS Multi-AZ Deployments

Managed AWS No-SQL/SQL Database Services

Amazon Dynamo DB Managed AWS No-SQL/SQL Database Services

AWS Management Console

Account Activity page

AWS Account Billing

AWS service pricing

AWS Trusted Advisor

Billing Alarms

Consolidated billing

Pay-as-you-go pricing

AWS CloudTrail

Amazon Incident Management Team

Amazon Simple Notification Service

Multi-region deployment

AWS Identity and Access AWS IAM Multi-Factor Authentication (MFA)

Management (IAM)

AWS IAM password policy

AWS IAM Permissions

AWS IAM Policies

AWS IAM Roles

Amazon CloudWatch AWS CloudWatch Dashboard

Amazon CloudWatch alarms

AWS Elastic Beanstalk AWS Elastic Beanstalk monitoring

AWS CloudFormation AWS CloudFormation templates

AWS Data Pipeline AWS Data Pipeline Task Runner

AWS CloudHSM CloudHSM key storage

AWS Marketplace Extensive 3rd Party Solutions

Data Centers

AWS SOC 1 physical access controls

AWS SOC 2-Security physical access controls

AWS PCI DSS physical access controls

AWS ISO 27001 physical access controls

AWS FedRAMP physical access controls

Page 8: Config rulesを1年ほど使い続けて分かったこと

Security at Scale:Governance in AWS AWS Services Governanceenabling feature

Amazon EC2

Amazon EC2 idempotency instance launch

Amazon EC2 resource tagging

Amazon Linux AMIs

Amazon EC2 Dedicated Instances

Amazon EC2 instance launch wizard

Amazon EC2 security groups

Elastic Load Balancing Elastic Load Balancing traffic distribution

Amazon VPC

Amazon VPC

Amazon VPC logical isolation

Amazon VPC network ACLs

Amazon VPC private IP addresses

Amazon VPC security groups

On-premise hardware/software VPN connections

Amazon Route 53 Amazon Route 53 latency resource record sets

Route 53 health Checks and DNS failover

AWS Direct Connect AWS Direct Connect

Amazon S3

Amazon S3 Access Control Lists (ACLs)

Amazon S3 Bucket Policies

Amazon S3 Query String Authentication

Amazon S3 Client-Side Encryption

Amazon S3 Server-Side Encryption

Amazon S3 Object Expiration

Amazon S3 server access logs

Amazon S3 TCP selective acknowledgement

Amazon S3 TCP window scaling

Amazon Glacier Amazon Glacier vault inventory

Amazon Glacier archives

Amazon EBS Amazon EBS snapshots

AWS Import/Export AWS Import/Export bulk datano…

AWS Storage Gateway AWS Storage Gateway integration

AWS Storage Gateway APIs

AWS Services Governanceenabling feature

Amazon CloudFront

Amazon CloudFront

Amazon CloudFront access logs

Amazon RDS Amazon RDS database logs

Amazon RDS Multi-AZ Deployments

Managed AWS No-SQL/SQL Database Services

Amazon Dynamo DB Managed AWS No-SQL/SQL Database Services

AWS Management Console

Account Activity page

AWS Account Billing

AWS service pricing

AWS Trusted Advisor

Billing Alarms

Consolidated billing

Pay-as-you-go pricing

AWS CloudTrail

Amazon Incident Management Team

Amazon Simple Notification Service

Multi-region deployment

AWS Identity and Access AWS IAM Multi-Factor Authentication (MFA)

Management (IAM)

AWS IAM password policy

AWS IAM Permissions

AWS IAM Policies

AWS IAM Roles

Amazon CloudWatch AWS CloudWatch Dashboard

Amazon CloudWatch alarms

AWS Elastic Beanstalk AWS Elastic Beanstalk monitoring

AWS CloudFormation AWS CloudFormation templates

AWS Data Pipeline AWS Data Pipeline Task Runner

AWS CloudHSM CloudHSM key storage

AWS Marketplace Extensive 3rd Party Solutions

Data Centers

AWS SOC 1 physical access controls

AWS SOC 2-Security physical access controls

AWS PCI DSS physical access controls

AWS ISO 27001 physical access controls

AWS FedRAMP physical access controls

よりチェックリスト的。 いくつかの内容はConfig Rules あると便利です。

Page 9: Config rulesを1年ほど使い続けて分かったこと

本題: Config Rules

Page 10: Config rulesを1年ほど使い続けて分かったこと

• ガバナンス目的のサービス

• 2015/12リリース(Tokyoは2016/4)

• 現在は設定チェックと通知が目的

• マネージドルールとカスタムルール

• 定期実行or設定変更時に実行化

Config Rules

Page 11: Config rulesを1年ほど使い続けて分かったこと

subnet

IAM

role

CloudTrail

VPN gateway

route table

Elastic IP

EC2 EC2

Security Group

AWS設定のチェックが しきれない!

新規設定 設定変更

Config Rulesが無かったころ

Page 12: Config rulesを1年ほど使い続けて分かったこと

subnet

IAM

role

CloudTrail

VPN gateway

route table

Elastic IP

EC2 EC2

AWS Config

Security Group

リソースの 設定を記録

Config Rules ・Security Groupは適切? ・EC2に必要なタグがついてる? ・EBS暗号化されてる? etc...

AWS Lambda

設定のチェック (ルールの評価)

自動チェックができる!

設定情報の 引き渡し(event)

評価結果の 引渡し

Config Rulesが出てから

Page 13: Config rulesを1年ほど使い続けて分かったこと

AWS Config AWS Lambda

subnet

IAM

role

CloudTrail

VPN gateway

route table

Elastic IP

EC2 EC2

Security Group

リソースの 設定を記録

AWS Config Rules

Lambdaのトリガーと 設定情報の引き渡し

評価結果の 引渡し(AWS Config API)

ルール(Lambdaファンクション)の実行

Config Rulesの ダッシュボード

AWSで用意してあるマネージドルールと、

ユーザーがLambdaファンクションで定義するカスタムルールを使えます。

Page 14: Config rulesを1年ほど使い続けて分かったこと

実行例はこんな感じ

Page 15: Config rulesを1年ほど使い続けて分かったこと

1年ほど前

Page 16: Config rulesを1年ほど使い続けて分かったこと

Config Rulesの原稿書くことになった

Config Rulesのカスタムルールを複数社で記事出したいんだけど

どうかな?

OK、じゃあSGまわりの通知ファンクション作る。

編集長

Page 17: Config rulesを1年ほど使い続けて分かったこと

Secutiry Groupで 0.0.0.0/0でsshやRDPを開放したら 通知するようなものでも作るか…

「ぼくのかんがえたべんりなRules」

Page 18: Config rulesを1年ほど使い続けて分かったこと

ごめん、久保さん以外 書いてくれなかった。

マジか 編集長

書いたあとのMTG

Page 19: Config rulesを1年ほど使い続けて分かったこと

原稿はしばらく お蔵入り

1年ほど前

Page 20: Config rulesを1年ほど使い続けて分かったこと

でもConfig Rulesは 使おうか…

1年ほど前

Page 21: Config rulesを1年ほど使い続けて分かったこと

ところで弊社

AWSアカウントいっぱいある。

各々のカスタムルールを管理するのが面倒。

Page 22: Config rulesを1年ほど使い続けて分かったこと

カスタムルールは一元管理したい

Page 23: Config rulesを1年ほど使い続けて分かったこと

カスタムルールは一元管理したい

簡単に まとめられます

Page 24: Config rulesを1年ほど使い続けて分かったこと

SGのカスタムルールでの例

SG設定

設定変更内容記録

SG内容チェック

違反通知

一般アカウント (多数)

カスタムルール 実行アカウント

Lambdaファンクションへの パーミッション付与

クロスアカウントロール

Page 25: Config rulesを1年ほど使い続けて分かったこと

SGのカスタムルールでの例

SG設定

設定変更内容記録

SG内容チェック

違反通知

一般アカウント (多数)

カスタムルール 実行アカウント

Lambdaファンクションへの パーミッション設定

クロスアカウントロール

Page 26: Config rulesを1年ほど使い続けて分かったこと

設定の詳細説明

aws lambda add-permission --function-name <functionname> --region <region> --statement-id <id> --action “lambda:InvokeFunction” --principal config.amazonaws.com --source-arn <config-rules-arn>

Lambdaファンクションへの パーミッション設定

こんなコマンド打つわけですが…

Page 27: Config rulesを1年ほど使い続けて分かったこと

https://aws.amazon.com/blogs/devops/how-to-centrally-manage-aws-config-rules-across-multiple-aws-accounts/

設定の詳細説明しようと思ったが…

AWS DevOps Blogに類似内容が あったので参照のこと。

Page 28: Config rulesを1年ほど使い続けて分かったこと

カスタムルールは一元管理したい

いずれにせよ、 一元管理しよう

Page 29: Config rulesを1年ほど使い続けて分かったこと

ついでに作ったルール

• IAM UserのCredentialチェックポリシー

→作成してnヶ月経ってたら更新催促通知

• ELBのSSLセキュリティポリシー

→SSL Protocols/Ciphersの管理を厳密化

Page 30: Config rulesを1年ほど使い続けて分かったこと

• IAM Userのクレデンシャルチェックポリシー

→作成してnヶ月経ってたら更新催促通知

• ELBのSSLセキュリティポリシー

→SSL Protocols/Ciphersの管理を厳密化

動かない

Page 31: Config rulesを1年ほど使い続けて分かったこと

• IAM Userのクレデンシャルチェックポリシー

→作成してnヶ月経ってたら更新催促通知

• ELBのSSLセキュリティポリシー

→SSL Protocols/Ciphersの管理を厳密化

ELBはAWS Config未対応(現在ALBは対応)。 ので、単なるLambdaファンクションとして動作。 ※一応Lambda単体としての実行で目的(検知と通知)は満たせる。

Page 32: Config rulesを1年ほど使い続けて分かったこと

AWS Service resourceType Value

AWS Certificate Manager AWS::ACM::Certificate

CloudTrail AWS::CloudTrail::Trail

EBS AWS::EC2::Volume

EC2

AWS::EC2::Host

AWS::EC2::EIP

AWS::EC2::Instance

AWS::EC2::NetworkInterface

AWS::EC2::SecurityGroup

EC2 Systems Manager AWS::SSM::ManagedInstanceInventory

Elastic Load Balancing AWS::ElasticLoadBalancingV2::LoadBalancer

IAM

AWS::IAM::User

AWS::IAM::Group

AWS::IAM::Role

AWS::IAM::Policy

Redshift

AWS::Redshift::Cluster

AWS::Redshift::ClusterParameterGroup

AWS::Redshift::ClusterSecurityGroup

AWS::Redshift::ClusterSnapshot

AWS::Redshift::ClusterSubnetGroup

AWS::Redshift::EventSubscription

AWS Service resourceType Value

RDS

AWS::RDS::DBInstance

AWS::RDS::DBSecurityGroup

AWS::RDS::DBSnapshot

AWS::RDS::DBSubnetGroup

AWS::RDS::EventSubscription

S3 AWS::S3::Bucket

VPC

AWS::EC2::CustomerGateway

AWS::EC2::InternetGateway

AWS::EC2::NetworkAcl

AWS::EC2::RouteTable

AWS::EC2::Subnet

AWS::EC2::VPC

AWS::EC2::VPNConnection

AWS::EC2::VPNGateway

今は対応リソースが増えてます

http://docs.aws.amazon.com/ja_jp/config/latest/developerguide/resource-config-reference.html

Page 33: Config rulesを1年ほど使い続けて分かったこと

AWS Service resourceType Value

AWS Certificate Manager AWS::ACM::Certificate

CloudTrail AWS::CloudTrail::Trail

EBS AWS::EC2::Volume

EC2

AWS::EC2::Host

AWS::EC2::EIP

AWS::EC2::Instance

AWS::EC2::NetworkInterface

AWS::EC2::SecurityGroup

EC2 Systems Manager AWS::SSM::ManagedInstanceInventory

Elastic Load Balancing AWS::ElasticLoadBalancingV2::LoadBalancer

IAM

AWS::IAM::User

AWS::IAM::Group

AWS::IAM::Role

AWS::IAM::Policy

Redshift

AWS::Redshift::Cluster

AWS::Redshift::ClusterParameterGroup

AWS::Redshift::ClusterSecurityGroup

AWS::Redshift::ClusterSnapshot

AWS::Redshift::ClusterSubnetGroup

AWS::Redshift::EventSubscription

AWS Service resourceType Value

RDS

AWS::RDS::DBInstance

AWS::RDS::DBSecurityGroup

AWS::RDS::DBSnapshot

AWS::RDS::DBSubnetGroup

AWS::RDS::EventSubscription

S3 AWS::S3::Bucket

VPC

AWS::EC2::CustomerGateway

AWS::EC2::InternetGateway

AWS::EC2::NetworkAcl

AWS::EC2::RouteTable

AWS::EC2::Subnet

AWS::EC2::VPC

AWS::EC2::VPNConnection

AWS::EC2::VPNGateway

今は対応リソースが増えてます

http://docs.aws.amazon.com/ja_jp/config/latest/developerguide/resource-config-reference.html

対応リソースは確認しましょう

Page 34: Config rulesを1年ほど使い続けて分かったこと

1年ほど使い続けてみて

• クロスアカウント利用で管理が楽に

• セキュリティ意識付け

• チェック実行は即時ではない

• 実行エラーを追いづらい

• 通知→迷惑メールにフィルタされやすい

Page 35: Config rulesを1年ほど使い続けて分かったこと

補足:チェック実行は即時ではない

Page 36: Config rulesを1年ほど使い続けて分かったこと

補足:チェック実行は即時ではない

ルールのチェックはConfig timelineの更新タイミングと同じくらい。 設定変更から若干のタイムラグ。

Page 37: Config rulesを1年ほど使い続けて分かったこと

補足:実行エラーを追いづらい

Lambdaファンクション共通課題。 あとアカウントライフサイクルの経緯により中途半端な設定のアカウントが残ると、エラーも出てきます。

Page 38: Config rulesを1年ほど使い続けて分かったこと

AWS Labsでもカスタムルール増加中

https://github.com/awslabs/aws-config-rules

Page 39: Config rulesを1年ほど使い続けて分かったこと

マネージドルールも増えてます

Page 40: Config rulesを1年ほど使い続けて分かったこと

• クロスアカウントでルールを一元化できる

• 対応リソースは確認しよう

• 対応リソースは増えてる

• ルール実行までのタイムラグは若干ある

• 使えるルールは増えてる。使おう!

まとめ

Page 41: Config rulesを1年ほど使い続けて分かったこと

良いConfigライフを!