当社が提供するサービスであるinsightwatchでは、自分のAWS環境についてCISベンチマークやAWSセキュリティチェックリスト、IAMベストプラクティスといった規準でチェックを行うことができます。チェックを全てパスすれば、非常に堅牢にAWSを運用することができますが、しかしながら全てのチェックを全てパスし、オールグリーンにするのはなかなか難しいようです。実際のユーザ様への参考の意味も兼ねて、身をもって自分の個人検証用のAWS環境でオールグリーンを目指し、その過程をブログで公開していこうと思います。Management」の指摘事項をすべて解消するところまで紹介します。「insightwatchとはなんぞや?」や「どうチェックするのか?」「CISベンチマークって何?」という方のためにいかに各種情報へのリンクを挙げておきます。insightwatch:https://insightwatch.ioinsightwatchへの新規の登録やチェックの実行の仕方の解説:https://dev.classmethod.jp/cloud/aws/insightwatch-start/CISベンチマークについての解説:https://dev.classmethod.jp/cloud/aws/reading-cis-aws-foundation-benchmark/最初のチェック結果さて、とりあえず私の個人検証環境をinsightwatchでチェックしてみた最初の結果は下記の通りです。注意12個、重要45個の指摘があります。入社して1ヶ月にも満たないまだ私の検証環境にはそれほどAWSリソースはないのですが。Management」のチェック結果の詳細は以下の通りです。ちなみに「マネージド」という項目がありますが、これは当社サービス「クラスメソッドメンバーズ」をご契約されている際、当社で管理している項目について表示されます。rootアカウントなどを当社で管理しているので、それらについてはユーザ様は対応をする必要がありません。私のアカウントもクラスメソッドメンバーズで管理されていますので、対象項目は同様に「マネージド」となっています。それでは個々の項目を潰していきます。1.11)1.5から1.11はいずれもIAMパスワードポリシーのチェック項目となります。最低14文字、パスワードの再利用を24世代まで禁止、パスワード有効期限が90日以内」というポリシーとなります。-「アカウント設定」から各項目を変更します。CLIで各ポリシーを一気に流し込むこともできます。--allow-users-to-change-password一番後ろのパラメータ「--allow-users-to-change-password」は、ユーザにパスワード変更の許可を求めるというオプションで、上記の要件には上がっていないのですが、IAMベストプラクティスに含まれているのでついでに設定しています。CLIで設定した場合の確認のコマンドは下記です。get-account-password-policyGUIでは下記のようになっていればOKです。私の環境では1.9-1.11が引っかかっていましたが、上記対応ですべてクリアです。IAMポリシーがグループまたはロールにのみ適用されていることこの要件はIAMポリシーにユーザに直接アタッチしていると引っかかります。ユーザがそれぞれポリシーをアタッチしていると管理上複雑となるので、必要なポリシーを持つグループを作り、そのグループにユーザをアタッチしたほうが良い、というわけです。私の環境の場合、CodeCommit用に作ったgituserというユーザに直接ポリシーをアタッチしていました。推奨に従って、同じポリシーを持つ新しいグループを作ってそれをアタッチする形に変更しました。手順は下記の通りです。-「ユーザ」で、一覧から各ユーザをクリック。EC2でのAWSリソースへのAPIアクセスはIAMインスタンスロールを利用していることこれはIAMロールが設定されていないEC2が存在すると引っかかります。AWSリソースにEC2でアクセスする場合、IAMロールを使わない場合はアクセスキーを使用する事になるので、それは止めてIAMロールを使った方が安全ですよ、ということですね。確かに1台IAMロールを設定していないEC2インスタンスがあったのですが、これは実際他のAWSリソースにアクセスしないEC2で別にアクセスキーも使っていないので問題にはならないのでは・・・と思わないではないです。実際はこれはCISベンチマークではLevel2、すなわち「環境により設定が必要」と分類されるもので、チェックの結果も「重要」ではなく「注意」となっています。対応する必要があるわけではありません。今回はオールグリーンにするのが目的なので、一応IAMロールを設定しておくことにします。いえ他のAWSリソースには接続しないインスタンスなので、どこかしらにアクセスを許可するロールをアタッチするのは避けたいところです。All」をアタッチしたIAMロールを作成し、これを設定しました。Allとか設定すると通信もできなくならないかとちょっと心配しましたが、SSH接続に支障はありませんでした。不要なアクセスキーの発行を避ける使っていないアクセスキーがあれば削除したほうがいい、ということです。無効化しただけでは駄目なようで(試した)、削除しないと引っかかるようです。確認してみると前掲のユーザ「gituser」で利用していないアクセスキーが確かにあったので削除対応しました。制限なしのアクセス許可を指定したIAMポリシーを利用しないフルに全てのリソースにアクセスできるAdmin権限(マネージドポリシーで言うとAdministratorAccess)を使わない、ということですね。当社では、各自の検証環境へは一旦社内AWS基幹のアカウントでログイン、その後スイッチロールして検証環境に入るルールで、この際のロールにAdministratorAccessポリシーがアタッチされています。※スイッチロール/クロスアカウントアクセスについては以下の記事をご参照ください:超簡単!今すぐ使える「クロスアカウントアクセス」このロールを編集する必要がありますが、どのようにするべきか。考えた結果、既存のロールはIAM権限を最低限とした「普段の検証用に使うロール」とし、それに加えて「IAMを管理するロール」を別途用意することにしました。IAMの管理が必要な時だけ、このIAM管理用ロールにスイッチロールする想定です。普段検証で利用するユーザですが、以下の記事を参考にしてIAM以外の操作が可能なPowerUserポリシーと、IAMロールをリソースに設定する(パスする)ポリシーをアタッチすることにしました。リソースにIAMロールを設定するケースは多いため、これがないと検証は若干面倒になります。Roleを設定するためのポリシー設定IAM管理用ロールにはポリシーとしてIAMFullAccessを割り当てましたまとめると以下のような設定です。「IAMPassRoleAccess」は前掲の記事を参考に設定したポリシーです。IAMFullAccessなお、今回はIAM管理にはIAMFullAccessを割り当てましたが、理想としては下記記事にあるように、IAM管理もユーザ等を作成する「マスターロール」と割り当てを行える「マネージャロール」に分けるのが良いと思います。注:このロールの分割もかつては上記の記事にある通りCISベンチマークに含まれていたのですが、バージョンがv1.1からv1.2に上がった際に削除されています。いえセキュリティをより強化できるので、紹介させていただきました。Management」の結果はマネージドの項目以外すべて「正常」となりました。全体での成績は次の通りです。最初のチェック結果が注意12個・重要45個であったのに比べて注意11個(-1)・重要31個(-14)となりました。対処した項目よりも指摘数が減っていますが、これは対処によりIAMベストプラクティスなど他のセキュリティチェックの項目も結果的にクリアしたためです。いえまだまだ指摘事項は山積みですので、引き続き対処して行きたいと思います。この記事でinsightwatchのセキュリティチェックに興味を持った方は、ぜひともこのサービスに登録してみてください(無料で使えます!)。110,644AWS事業本部オペレーション部所属。記事たごまさゆき8insightwatchでNGリソースをチェック対象から外す事が出来るようになりました。〜ログ収集、監視、分析を触って体感しよう!〜」を開催しますお申し込み受付は終了しました。ありがとうございました。今後セミナーのお知らせを受け取りたい方は、こちらからご登録をお願いします。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。平野重利123Pythonで、標準入力を変換して標準出力に出すCLIプログラムのテンプレートをご紹介します。菊池修治47こんにちは、菊池です。勉強会#1に登壇しました。サーバのみならずネットワーク機器の仮想化も年々進んでいます。スペックに縛られないこととか、展開のしやすさとか初期考慮点が少なくなるのは嬉しいです。武田隆志1098このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。悠紀235ShifterはWordPress環境をサーバーレスで立ち上げ、静的なサイトを生成することができるサービスです。FAQサイトをサクッと作ってみました。Takumi227こんにちは。DA事業本部の春田です。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。