そこが知りたい! AWS クラウドのセキュリティ #AWSRoadshow 1
Twitter で AWS Cloud Roadshow に参加しよう! #AWSRoadshow 皆さんのご意見聞かせてください! 公式アカウント @awscloud_jp 最新技術情報 イベント情報 お得なクーポン情報など日々更新中! 2
自己紹介 名前:鈴木 宏昌 スズキ ヒロアキ 所属:AWSテクニカルトレーナー 好きなAWSのサービス:Amazon CloudWatch 前職:国内SIerでクラウドサービスの企画 運営を担当 3
Agenda AWS でのネットワークアクセス制御 VPC( 仮想プライベートクラウド ) サブネット セキュリティグループ ネットワーク ACL AWS リソースのアクセス制御 IAM ユーザ IAM ロール AWS 監査機能 CloudTrail AWS Config Amazon Inspector 4
ネットワーク制御と AWS リソース制御 不要なトラフィックを遮断してセキュアな環境を構築 VPC やセキュリティグループによりネットワークを制御 EC2 インスタンス ( 仮想サーバ ) へのアクセスを遮断することはできる EC2 インスタンスの起動や停止などの AWS リソース操作を制御する機能ではない セキュアな運用には AWS リソースの制御も重要 AWS Identity and Access Management (IAM) EC2 の起動や停止などの AWS リソース操作の制御が可能 AWS リソースの操作には API が利用される 5
AWS 利用におけるセキュリティ確保の全体像 マネジメントコンソール コマンドライン / SDK IAM ユーザ ID Password による認証 SSL SSL アクセスキー ID シークレットキーによる API の認証 マネジメントコンソール AWS API IAM EC2 (Linux) EBS EC2 (Windows) EBS セキュリティグループによるインスタンスの通信保護 SSH RDP ターミナル キーペアによる認証 VPC サブネットによるネットワークの通信保護 仮想デスクトップ 6
ネットワーク制御によるセキュリティ確保の全体像 セキュリティグループによるインスタンスの通信保護 EC2 (Linux) SSH EBS ターミナル キーペアによる認証 VPC サブネットによるネットワークの通信保護 EC2 (Windows) EBS RDP 仮想デスクトップ 7
Amazon Virtual Private Cloud (VPC) AWS 上に仮想的なプライベートネットワーク空間を構築 EC2 や RDS などのサービスは VPC 内で起動 VPC は他の仮想ネットワークなどからも論理的に隔離 VPN の利用より社内からの閉域網で AWS を利用可能 社内インフラの拡張として利用できる従来のネットワーク環境と同様の環境を構築できる 8
VPC の構成概要 インターネットゲートウェイ VPN ゲートウェイ Amazon VPC ルートテーブル ルートテーブル ネットワーク ACL ネットワーク ACL サブネット セキュリティグループ サブネット セキュリティグループ インスタンス インスタンス インスタンス インスタンス 9
サブネット VPC 内は大きく次の 2 つの領域に分割可能 パブリックサブネット インターネットからアクセス可能な領域 ロードバランサーなどのサービスを配置 プライベートサブネット インターネットから直接アクセスができない領域 インターネットから直接アクセスする必要がないリソースを配置し保護 ロードバランサーを利用した場合 Web サーバーもプライベートサブネットに配置可能 10
VPC 構成例 1:Web3 層システム インターネットゲートウェイ Internet Amazon VPC Web 踏み台 Web NAT パブリックサブネット AP AP プライベートサブネット アベイラビリティゾーン A アベイラビリティゾーン B 11
VPC 構成例 2: オンプレミス環境との連携 Amazon VPC VPN 接続専用線 アベイラビリティゾーン A 仮想プライベートゲートウェイ (VGW) 自社データセンター アベイラビリティゾーン B 12
VPC 構成例 3: ワークロードごとの VPC 分割 VPC1 人事 VPC2 営業 自社ネットワーク VPC3 会計 社外ネットワーク ( インターネット ) 13
VPC エンドポイントによるアクセス Internet Amazon VPC Web 踏み台 Web NAT パブリックサブネット S3 AP AP VPC エンドポイント プライベートサブネット DynamoDB アベイラビリティゾーン A アベイラビリティゾーン B 14
VPC エンドポイント VPC と AWS サービスをプライベートに接続 VPC エンドポイントがない場合は インターネット経由で アクセス プライベートサブネットからもアクセス可能 以下のサービスに対応 (2017/09/27 時点 ) S3 DynamoDB 15
セキュリティグループとネットワーク ACL Internet Amazon VPC サブネット ネットワーク ACL ( サブネットの境界を保護 ) EC2 セキュリティグループ ( インスタンスを保護 ) 16
セキュリティグループ インスタンスの仮想ファイアウォールとして機能 複数のインスタンスをグルーピング可能 デフォルトですべてのインバウンド通信は禁止ステートフル Web サーバーセキュリティグループ Web Web Web 17
多層セキュリティグループ タイプ :HTTP ソース :0.0.0.0/0 タイプ :HTTP ソース :sg-00000001 sg-00000001 からの HTTP 通信を許可 タイプ :HTTP ソース :sg-00000003 sg-0000001 sg-00000002 sg-00000003 sg-00000004 セキュリティグループ ID Web Web AP AP ロードバランサー Web サーバー 内部ロードバランサー AP サーバー 18
ネットワーク ACL サブネット毎に設定するパケットフィルタ機能サブネット毎にインバウンド アウトバウンド通信を制御デフォルトはすべて許可ステートレス 19
セキュリティグループとネットワーク ACL セキュリティグループ ネットワーク ACL 対象サーバレベルで効果サブネットレベルで効果 タイプ ステート制御 ホワイトリスト型 Allow のみを IN OUT で指定可能 ステートフルなので 戻りのトラフィックを考慮しなくてよい ブラックリスト型 Allow/Deny を IN OUT で指定可能 ステートレスなので 戻りのトラフィックも明示的に許可設定する 適用順全てのルールを適用番号の順序通りに適用 適用範囲 インスタンス管理者がセキュリティグループを適用すればその管理下になる サブネット内のすべてのインスタンスが ACL の管理下に入る 20
AWS 利用におけるセキュリティ確保の全体像 マネジメントコンソール コマンドライン / SDK IAM ユーザ ID Password による認証 SSL SSL アクセスキー ID シークレットキーによる API の認証 マネジメントコンソール AWS API IAM EC2 (Linux) EBS EC2 (Windows) EBS セキュリティグループによるインスタンスの通信保護 SSH RDP ターミナル キーペアによる認証 VPC サブネットによるネットワークの通信保護 仮想デスクトップ 21
IAM によるセキュリティ確保の全体像 マネジメントコンソール コマンドライン / SDK IAM ユーザ ID Password による認証 SSL SSL アクセスキー ID シークレットキーによる API の認証 マネジメントコンソール AWS API IAM EC2 (Linux) EBS EC2 (Windows) EBS 22
AWS Identity and Access Management (IAM) AWS リソースの操作をセキュアに行うための 認証 認可の仕組み AWS 利用者の認証と アクセスポリシーを管理 AWS 操作のためのユーザー グループ ロールの作成が可能 グループ ユーザーごとに 実行出来る操作を規定できる ユーザーごとに認証情報の設定が可能 23
AWS における認証の種類 種類 メールアドレス & パスワード 説明 root ユーザ として AWS にアクセス IAM ユーザ名 & パスワード アクセスキー ID & シークレットアクセスキー root ユーザ アカウント取得時に作成されるユーザ AWS リソースのフルアクセス権を持つユーザ 日々の運用業務などには使用しないことを強く推奨 IAM ユーザとして AWS マネージメントコンソールにアクセス CLI や API などのプログラムによる AWS へのアクセスに利用 24
IAM ユーザ / グループ IAM ユーザ AWS 管理などを行うユーザ アプリケーションからの接続用など必ずしも人の操作用とは限らない IAM グループ IAM ユーザーの集合 グループ全体の権限を指定する AWS アカウント 管理者グループ TAKAHASHI root ユーザ 開発グループ WATANABE TANAKA IAM ユーザ KURODA IAM ユーザ 25
IAM ポリシー 権限を記述している JSON ドキュメント IAM ユーザ グループなどに割り当てる IAM ポリシー { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:listbucket", "Resource": "arn:aws:s3:::example_bucket" } } 開発グループ 26
IAM 動作イメージ TAKAHASHI TANAKA 管理者グループ AWSの全操作権限 IAMポリシー 開発グループ マネジメントコンソール AWS API IAM EC2 WATANABE KURODA S3 の全操作権限 IAM ポリシー S3 27
IAM ポリシー例 { } "Version": "2012-10-17", "Statement": [ { "Action": "ec2:*", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ec2:region": "<REGION>" } } ] } 特定のリージョン内でのみ EC2 アクセスを許可 { ] } "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:terminateinstances" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": [ "ec2:terminateinstances" ], "Condition": {"NotIpAddress": {"aws:sourceip": [ "192.0.2.0/24", } "203.0.113.0/24" ]}}, "Resource": [ "*" ] EC2 の終了権限を特定の IP 範囲のユーザに制限 28
IAM ロール AWS リソースへのアクセスを委任するために使用ロールを引き受けることでロールにアタッチされた権限を使用できる 第三者へアクセス権を付与する際にも利用可能 AWS アカウント A の S3 へのアクセス権 IAM ポリシー ロール AWS アカウント B がロールを引き受け アクセス AWS アカウント A の S3 クロスアカウントアクセス 29
IAM ロールによるセキュアなアプリケーション開発 EC2にロールをアタッチすることでEC2 上で動作するアプリケーションに権限を付与できるアクセスキー / シークレットアクセスキーをソースコードに埋め込む必要がない インスタンスプロファイル S3FullAccess AmazonDynamoDB FullAccess IAM ポリシー ロール AP EC2 インスタンス S3 DynamoDB 30
AWS IAM のベストプラクティス AWS アカウントの (rootユーザ) アクセスキーの削除個々の IAM ユーザーの作成グループを使用して IAM ユーザーに権限を割り当てる最小権限を付与強力なパスワードポリシーを設定する権限のあるユーザーに対して MFA を有効にする IAM ベストプラクティスの詳細は以下を参照 http://docs.aws.amazon.com/ja_jp/iam/latest/userguide/best-practices.html 31
その他 セキュアな環境構築のポイント トラブル発生時にはログ記録の確認も重要 AWS CloudTrail AWS Config 定期的な脆弱性の存在の有無のチェックなどのセキュリティ評価 Amazon Inspector 32
AWS CloudTrail AWS アカウントのすべてのリソースに対する AWS API 呼び出しを記録し 監視することができる Amazon EC2 Amazon RDS AWS CloudTrail 管理コンソール CLI 他 Amazon VPC Amazon Redshift 33
AWS Config AWS の詳細なリソース設定履歴を確認でき 設定を評価 監査 審査できるようにするサービス Amazon EC2 AWS Config 停止 起動 34
Amazon Inspector AWS にデプロイしたアプリケーションのセキュリティとコンプライアンスを向上させるための自動セキュリティ評価サービス脆弱性やベストプラクティスからの逸脱をチェック重要度や改善ステップを載せた詳細レポートを作成 35
まとめ AWS でのネットワークアクセス制御 VPC( 仮想プライベートクラウド ) サブネット セキュリティグループ ネットワーク ACL AWS リソースのアクセス制御 IAM ユーザ IAM ロール AWS 監査機能 CloudTrail AWS Config Amazon Inspector 36
ご清聴ありがとうございました! #AWSRoadshow 37