catch-img

AWS IAMの認証(マネジメントコンソールとCLI)の違いとIAMロール

本記事は、セミナーで実施したデモの内容を記載しております。

セミナー参加後の振返りにご利用ください。

目次[非表示]

  1. 1. マネジメントコンソールへの認証
  2. 2. CLI(コマンドラインインターフェース)からの認証
  3. 3. アクセスキーが漏れると
  4. 4. IAMロールを使ってEC2上で実行するCLIで認証する

 

マネジメントコンソールにサインインして、S3のバケット名一覧を見る方法と、CLI(コマンドラインインターフェース)から同じようにS3バケット名一覧を見る方法を比較します。

認証方法がそれぞれ違うことをご確認ください。

マネジメントコンソールへの認証

マネジメントコンソールへのサインイン

21-4

Webページで公開されている誰でもアクセスできる、リンクやボタンからマネジメントコンソールのサインイン画面にアクセスします。

22-4

12桁のアカウントID、IAMユーザー名、パスワードを入力してサインインします。

この3つの情報が漏れてしまうと、不正アクセスされてしまう可能性があります。

 

23-3

オプションでサインインした後にさらにMFA(Multi-Factor Authentication)の設定が可能です。

 

24-2

私の場合はGoogle AuthenticatorというiPhoneアプリを使用しています。

30秒ごとに変わる6桁の数字を入力しないとサインインができません。

6桁の数字なのでアタックされればいつかはやぶられるかもしれませんが、3回失敗すると再同期が必要となります。

オプションなので設定するしないは、お客さまに選択が委ねられますが、必ず設定することを推奨します。

繰り返しになりますが設定していないと、12桁のアカウントID、IAMユーザー名、パスワードが漏れれば不正アクセスされてしまいます。

マネジメントコンソールにサインインが完了したのでS3バケットの一覧を見てみます。

 

25-2

バケット名が表示されました。

 

CLI(コマンドラインインターフェース)からの認証

これと同じことをCLI(コマンドラインインターフェースから実行してみます)

デモ用に起動したEC2インスタンスにターミナルからSSHログインして操作します。

 

$ aws s3 lsUnable to locate credentials. You can configure credentials by running "aws configure".

バケットの一覧を表示するコマンド「aws s3 ls」を実行しましたが、"認証情報がない"というエラーになりました。

コマンドラインインターフェースから認証を行う場合は、IAMユーザー名とパスワードではなく、アクセスキーIDとシークレットアクセスキーを使用します。

権限を持っているIAMユーザーのアクセスキーを発行します。

26-2

「aws configure」コマンドから設定します。

 

$ aws configureAWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXXXXXXXAWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXDefault region name [None]: ap-northeast-1Default output format [None]: json

 

もう一度「aws s3 ls」コマンドを実行します。

$ aws s3 ls2018-08-23 07:14:03 takufile2017-06-04 03:12:26 tunecore-8bangi2017-07-08 01:14:44 uriwari-hey-mail2019-04-13 16:15:20 yamamanx-cloudfront-log2019-04-13 16:15:05 yamamanx-mail

 

マネジメントコンソールの画面に表示されたのと同じバケット名一覧が表示されました。

 

アクセスキーが漏れると

しかし、このIAMユーザーのアクセスキーを使用する方法は非推奨です。

なぜならアクセスキーIDとシークレットアクセスキーが漏れると不正アクセスされるためです。

実際にアクセスキーIDが漏れてしまって不正アクセスされた事件が発生しています。

アクセスキーが漏れたことによって、不正アクセスしたユーザーは仮想通貨のマイニングのために大きなサイズのEC2インスタンスをいくつも起動します。

それにより高額な請求が発生してしまう場合もあるかもしれません。

それだけならまだしも、そのアクセスキーのIAMユーザーに過剰な権限を設定してしまっていることにより、個人情報や機密情報を格納しているS3バケットにアクセスされてしまうかもしれません。

そうなると、警察や個人情報保護委員会などに報告をし、第三者機関に調査を依頼しなければなりません。

CloudTrailが有効な環境であれば、このアクセスされているかどうかの調査も行えますが、CloudTrailが無効な場合はもうお手上げです。

漏洩したかもしれません、という謝罪をしなければならなくなります。

もちろん、調査の結果、万が一漏洩しているときにも問題となります。

  • アクセスキーはなるべく使わずにIAMロールを使う。
  • IAMユーザーの権限ポリシーは最小権限で設定。
  • CloudTrailは有効にする。

これらはセキュリティのベストプラクティスです。

アクセスキーを使わずに、同様にCLIやSDKで実行するプログラムに権限を付与できるのが、IAMロールです。

 

IAMロールを使ってEC2上で実行するCLIで認証する

先ほどのアクセスキーをIAMユーザーから削除して、もう一度「aws s3 ls」コマンドを実行します。

 

$ aws s3 lsAn error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.

 

アクセスキーを削除したのでエラーとなります。

(アクセスキーそのものが存在しないので、.aws/credentialsファイルも削除しておきます)

 

EC2向けのIAMロールを新規作成して、インラインポリシーで、S3のListAllMyBucketsのみを有効にします。

 

27-2

 

作成したIAMロールを稼働中のEC2に設定します。

28-2

コマンドを実行します。

$ aws s3 ls2018-08-23 07:14:03 takufile2017-06-04 03:12:26 tunecore-8bangi2017-07-08 01:14:44 uriwari-hey-mail2019-04-13 16:15:20 yamamanx-cloudfront-log2019-04-13 16:15:05 yamamanx-mail

 

CLIから認証が行えてバケットの一覧が表示されました。

29-2

IAMロールを使用することで安全に認証情報を設定できました。

 

トレノケートのAWS研修(AWS認定トレーニング)

トレノケートのAWS認定トレーニングでは、AWS社の厳格なテクニカルスキル及びティーチングスキルチェックに合格した認定トレーナーがコースを担当します。AWS初心者向けの研修や、AWS認定資格を目指す人向けの研修をご提供し、皆様のAWS知識修得のサポートをいたします。
トレノケートのAWS研修(AWS認定トレーニング)はこちら


▼AWS初心者の方は、 AWS Cloud Practitioner Essentialsから!
座学中心の研修で、AWSを初めて学ぶ方や、営業などで提案に関わる方におすすめです。
「AWS Certified Cloud Practitioner」資格取得を目指す方の基礎知識修得にも最適です。
AWS Cloud Practitioner Essentials 詳細・日程はこちらから

山下 光洋(やました みつひろ)

トレノケート株式会社 講師。AWS Authorized Instructor Champion / AWS認定インストラクター(AAI) / AWS 認定ソリューションアーキテクト - プロフェッショナル /AWS認定DevOpsエンジニア - プロフェッショナル / AWS 認定デベロッパー - アソシエイト / AWS 認定 SysOps アドミニストレーター - アソシエイト / AWS 認定クラウドプラクティショナー / kintone認定 カスタマイズスペシャリスト他。AWS認定インストラクターとしてAWS認定コースを実施。毎年1,500名以上に受講いただいている。AWS 認定インストラクターアワード2018, 2019を日本で唯一受賞。著書『AWSではじめるLinux入門ガイド』(マイナビ出版社)。共著書『AWS認定試験対策 AWS クラウドプラクティショナー』(SBクリエイティブ社)。前職では2016年にAWS Summitにパネラーとして参加。その前はLotus Technical Award 2009 for Best Architectとして表彰されている。また、各コミュニティの運営にも個人的に関わり、勉強会にてスピーカーや参加をしている。

無料ダウンロード

オススメコンテンツ

オススメ記事

プロジェクトマネジメント PMP AWS ビジネススキル Microsoft PMBOKⓇ 田中淳子 IT資格 人材育成 山下光洋 AMA Azure コミュニケーション 人材開発用語集 PMBOK®ガイド入門 クラウド ITスキル 新入社員 横山哲也 PMP試験問題に挑戦 re:Invent セキュリティ 人材育成応援ラジオ DX Cisco PMBOKⓇガイド 第6版 試験体験記 イベント・セミナー PMBOK®ガイド第6版の変更点 人材開発 CCIE CCNA AI(人工知能) テレワーク ネットワーク リモートワーク 研修 GCP PMP(R)試験問題 第6版対応 PMP合格体験記 Windows Server AWS_Q&A Active Directory IT人材 IT資格解説 アセスメント デジタルビジネス ヒューマンスキル リーダーシップ 人気コースランキング 大喜利 部下の育成 Conversations DX人材育成 PMの心得 キャリア グローバル人材 新入社員研修といえば IoT OJT reinvent2022 リスキリング CCNP Security Windows PowerShell クリエイティビティ プログラミング 人材トレンド 試験対策問題 AI人材 PMP試験対策一問一答 コーチング プロジェクト プロトタイプビルダー 1on1 AWS_DiscoveryDay AWSトレーニングイベント GCP無料セミナー Google Cloud Google Cloud Platform G検定 ITインフラ oVice アワード クリティカルシンキング サンプル問題 ステークホルダー ダイバーシティ ディープラーニング ワーケーション 生成AI 自律 試験Tips Linux PMI Power Platform Python Teams Web会議 jawsdays2024