AWS IAM Overview
- AWS Identity and Access Management(IAM)はユーザに対するAWSリソースのセキュリティアクセスコントロールを提供するWebサービスです。
- IAMは以下を制御する際に使用されます。
- IAM is used to control
- Identity – 誰がAWSにリソースを使用できるか(認証)
- Access – どのリソースをどのような方法で利用できるか(認可)
- IAMはあなたのアカウントのクレデンシャルを非公開にすることもできます。
- IAMでは、AWSアカウントの下に、複数のIAMユーザを作成することや企業のディレクトリサービスやサードパーティのプロバイダとのアイデンティティフェデレーションによる一時的なアクセスを可能としています。
- IAMはAWSアカウントを跨いだリソースへのアクセスも可能としています。
IAMの機能
- AWSアカウントへのシェアードアクセス
- あなたのパスワードやアクセスキーを共有することなく、他の人にあなたのAWSアカウントのリソースを管理、使用する許可を与えることができます。
- 詳細なアクセス許可
- それぞれのユーザへ、仕事に必要な詳細な、それぞれ異なる許可を付与することができます。
- EC2上で動作するアプリケーションからのAWSリソースへのセキュアなアクセス
- IAMはEC2インスタンスに、他のAWSリソースへアクセスするために必要な一時的なクレデンシャルを付与できます。
- アイデンティティフェデレーション
- IAMは、ユーザのアカウントがAWSに存在していなくてもAWSリソースへアクセスさせることが可能です。企業ネットワークやGoogle、Amazonで認証することにより一時的なクレデンシャルを発行することができます。
- 保険のためのアイデンティティ情報
- CloudTrailはAWSアカウント内のリソースに対して実施されたリクエストに対する情報をログを受け取ることができます。
- PCI DSS準拠
- IAMは、加盟店またはサービスプロバイダによるクレジットカードデータの処理、保管、および送信をサポートし、PCI DSS(Payment Card Industry Data Security Standard)準拠のものとして検証されています
- 多くのAWSサービスの統合
- IAMはほぼ全てのAWSサービスと統合されています。
- 結果整合性
- IAMは多くの他のAWSサービスと同様に、結果整合性を持ち、世界中のAmazonのデータセンター内の複数サーバにまたがってデータを複製することで高可用性を実現しています。
- IAMにおける変更は最終的には一貫しますが、その反映には時間がかかります。
- 無課金
- IAMは追加の課金は発生せず、IAMユーザによる他のAWSプロダクトの使用のみにより課金されます。
- AWS Security Token Service
- IAMはSTSを提供しており、korehaAWSアカウントに含まれる機能であり、追加の課金はされません。
- AWS STSの一時的なセキュリティクレデンシャルにより他のAWSサービスを使用した際にのみ課金されます。
Identities
IAMのアイデンティティによって、AWSアカウント内の人やプロセスの認証に、だれ(何)がアクセス及び認証を提供できるが決まります
IAM Identities
アカウントのルートユーザ
- ルートアカウントのクレデンシャルはAWSアカウントにサインインした際のメールアドレスとパスワードです。
- ルートアカウントは、センシティブな情報であるアカウントのセキュリティクレデンシャルを含むAWSアカウントへのアクセスに対して完全に非制限です。
- IAM Best Practice – AWSアカウントを作成したら、ルートアカウントは使用・共有してはいけません。ルートアカウントの使用の変わりに、管理権限を持つ複数のユーザを作成してください。
- 管理アカウントは、アカウントのセキュリティクレデンシャル、請求情報、パスワード変更以外の全てのアクセス権を持つアカウントです。
IAMユーザ
- IAMユーザはAWSを使用するためにアクセスする人もしくはサービスです。
- IAM Best Practice – 個人毎にIAMユーザを作成します。
- ユーザのクレデンシャルは以下で構成されます。
- User credentials can consist of the following
- Password AWSマネージメントコンソールを通じてAWSのサービスにアクセスする際に使用されます。
- Access Key/Secret Access Key API、CLI、SDKを通じてAWSのサービスにアクセスする際に使用されます。
- IAMユーザは初期設定ではどのサービスに対しても許可がなく、AWSリソースでのアクションに対しても認可されていません。実施するジョブの要求に応じて許可を与える必要があります。
- IAM Best Practice – 最少の権限を与えて下さい。
- IAMユーザは一つのAWSアカウントでのみ有効です。
- IAMユーザはAWSマネジメントコンソールではリネームできません。CLIもしくはSDKでのみ可能です。
- IAMは、IAMユーザをリネームする際、一意なID、グループ、ポリシーに関してリネーム処理を実施します。ただし、IAMユーザーがリソースとして設定したポリシーについては、自身で名前の変更を処理する必要があります。
IAM Credentials
IAM Groups
- IAMグループはIAMユーザの集合です。
- IAMグループは、管理を容易にするために、同じジョブを実施するユーザの集合に対して特定の許可を与える際に使用できます。
- IAM Best Practice – IAMユーザにパーミッションを与える際にはグループを使用しましょう。
- グループはアイデンティティではなく、アクセスポリシーのプリンシパルとして指定することはできません。
- グループは複数のユーザを持つことができ、また、ユーザは複数のグループ(最大10)に所属することができます。
- グループはネストすることはできず、単にユーザを入れることのみ可能です。
- AWSは全てのユーザが保続するデフォルトグループは提供しておらず、もし必要であれば、自身で作成し、全てのユーザをアサインしてください。
- グループのリネームをする場合、IAMはグループにアタッチされたポリシー、一意なID、グループ内のユーザに関してリネーム処理を実施します。IAMはグループについて言及しているポリシーについてはアップデートしないため、手動で実施する必要があります。
- グループの削除する際にはユーザ、マネージドポリシー、インラインポリシーをデタッチした上で実施します。AWSマネージメントコンソールでの削除やデタッチは、細心の注意を払って実施してください。
IAM Roles
他の記事にて説明します(準備中)。
MultiFactor Authentication (MFA)
- セキュリティを控除させ、AWSリソースを保護するために、MFAを設定することができます。
- IAM Best Practice – ルートアカウントや特権を持つユーザではMFAを有効にします。
- MFAは以下を用いて設定することができます。
- Security token-based
- AWSのルートアカウントやIAMユーザはハードウェア/仮想MFAデバイスをアサインすることができます。
- デバイスは認証に必要な、6桁の数字のコードを、時刻同期型のワンタイムパスワードを用いて生成します。
- Security token-based
- SMS (Preview Mode)
- IAMユーザはSMSに対応した電話番号を設定することができ、AWSより6桁のコードを受け取ることができます。
- SMAによるMFAはIAMユーザのみ設定可能であり、ルートアカウントに設定することはできません。
- MFAはルートアカウントとIAMユーザで別々に設定する必要があります。ルートアカウントでMFAを有効にしてもIAMユーザで有効になるわけではありません。
- MFAデバイスは、一つのAWSアカウントもしくは一つのIAMユーザにのみ設定できます。
- MFAデバイスが停止したり、紛失してしまった場合には、AWSマネージメントコンソールにログインすることができなくなります。その際はMFAデバイスを無効化するためにAWSサポートまで連絡をしてください。
- “Condition”: {“Bool”: {“aws:MultiFactorAuthPresent”: “true”}}としたサービスのAPIを通じて、サービスAPI呼び出しに対してMFAによる保護を有効にできます。
IAM Access Management
他の記事にて説明します(準備中)。
Credential Report
- IAMで、パスワード、アクセスキー、MFAデバイスの情報を含む、AWSアカウント内の全てのユーザのリスト、ユーザのクレデンシャルの状態クレデンシャルレポートを生成、ダウンロードできます。
- クレデンシャルレポートは監査やコンプライアンスに対する取り組みに使用できます。
- クレデンシャルレポートはクレデンシャルのライフサイクル要求に対するの監査(パスワードやアクセスキーのローテーションなど)にも使用できます。
- IAM Best Practice – 監査を実施し、使用していないユーザやクレデンシャルの削除を実施しましょう。
- クレデンシャルレポートは4時間毎に生成されます。4時間以内に生成された場合、同じレポートをダウンロードすることができます。4時間以上経過した場合、新たなレポート新たなレポートがダウンロード可能です。
AWS認定試験の練習問題
- 設問はインターネットで集めたものだり、回答は著者の知識と理解に基づくものです(あなたの回答とは異なるかもしれません)
- AWSサービスは常にアップデートされており、設問、回答ともに古くなっているかもしれません。
- AWS認定試験の設問はAWSのアップデートのペースではアップデートされておらず、基礎となる機能が変更されても質問が更新されないことがあります。
- フィードバック、ディスカッション、訂正をお待ちしています。
-
ユーザに対して、AWS内のユーザや認証・認可を管理することができるサービスを選択してください。
a. AWS Access Control Service (ACS)
b .AWS Identity and Access Management (IAM)
c. AWS Identity Manager (AIM)
-
IAMは作成したグループに対する許可を自動的にアサインするためにいくつかのポリシーテンプレートを提供しています。_____ポリシーテンプレートは、あなたのAWSアカウントについての情報を除いて、全てのリソースへのアクセス許可を与える管理者グループのテンプレートです。
a. Read Only Access
b. Power User Access
c. AWS Cloud Formation Read Only Access
d. Administrator Access -
IAMにおいて自身で作成したIAMユーザは初期設定では_________の状態になっています。
a. 部分的なアクセス許可
b. フル権限付与
c. 許可なし -
IAMグループは_____することができません。
a. 3レベル以上にネスト
b. ネスト
c. 4レベル以上にネスト
c. 2レベル以上にネスト -
_____サービスは複数のユーザやシステムにAWSのプロダクト(Amazon EC2、Amazon SimpleDB、AWSマネジメントコンソールなど)を利用可能とするためのサービスです。
a. Amazon RDS
b. AWS Integrity Management
c. AWS Identity and Access Management
d. Amazon EMR -
EC2インスタンスによるオートスケーリングを用いたアプリケーションをデプロイしています。セキュリティポリシーにより、これらのインスタンスからVPCを通じた他のサービスに対するアウトバウンド接続は特定のインスタンスIDを含むユニークなX.509証明書により認証されている必要があります。加えて、X.509証明書はユーザの所有する鍵管理サービスで生成される必要があります。どの設定がこのような要求に使用できますか。
a. S3のオブジェクトに対してアクセス可能なIAMロールを作成し、S3には署名付き証明書を配置しておく。オートスケーリンググループを設定し、インスタンスをこのIAMロールを用いて起動する。インスタンス初回起動時にS3から証明書を取得する。
b. AMIに証明書を配置しておき、オートスケーリンググループで指定する。起動したインスタンスで、インスタンスにアサインされたインスタンスIDを用いて証明書を署名するリクエストを鍵管理システムに発行する。
c. オートスケーリンググループが新たなインスタンスを立ち上げる際に、信頼された鍵管理システムに対してSNS通知を送るようにせっていする。鍵管理システムは署名された証明書を発行し、新たに立ち上がったインスタンスに対して直接送付する。
d. 既に起動しているインスタンスに、初回起動時に新たな証明書を発行するよう設定する。鍵管理サービスはオートスケーリンググループに対してポーリングを実施し、新たなインスタンスに対してインスタンスIDを含む署名を送付する。 -
AWSのAPIへアクセスするクレデンシャルを評価する際、以下のどのクレデンシャルが評価されますか。3つ選択してください。
a. キーペア
b. マネジメントコンソールのパスワード
c. アクセスキー
d. 署名された証明書
e. セキュリティグループへの参加(EC2インスタンスのアクセスに必要) -
ある組織が50のIAMユーザを作成しました。それぞれのユーザがパスワード変更はできるが、アクセスキーの変更はできないように設定する必要があります。どの様にして実現できますか。
a. 特別なパスワードポリシーを作成し、それぞれのユーザにアタッチする。
b. ルートアカウント保持者がCLIを用いて、それぞれのユーザが初回ログイン時にパスワード変更を強制するよう設定する。
c. デフォルトでIAMユーザはそれぞれのパスワードを設置絵変更できる。
d. ルートアカウtの保持者がIAMコンソールのパスワードポリシー画面を通じてポリシーを設定する。 -
ある組織が50のIAMユーザを作成しました。組織はIAMユーザのアクセスに対する変更を施した新たなポリシーを適用しようとしています。個々のユーザレベルでのポリシー適用を避け、効率的に実装するためにはどのようにすべきですか。
a. IAMグループを用いて、ユーザを役割に応じた異なるグループに所属させ、グループに対してポリシーを適用する。
b. ポリシーを作成し、AWS CLIにより、単一の作業で複数のユーザにポリシーを適用する。
c. それぞれのIAMユーザに所属する組織に応じたIAMロールを適用し、効率的にポリシーを設定する。
d. IAMロールを用いて、ロールレベルでアクセス制御を実装する。 -
あなたの組織のセキュリティポリシーでは、全ての特権ユーザは、頻繁にパスワードをローテーションするか、ユーザ/パスワード認証に加えてワンタイムのクレデンシャルを発行する必要があります。ユーザに対して、この組織のポリシーを強制するための方法を以下のオプションから2つ選択してください。
a. 特権ユーザに対してMFAを設定する
b. 特権を持つIAMユーザを作成する (パスワードポリシーを設定できる)
c. アイデンティティフェデレーションを実装し、あなたの組織のIdPにIAM STSを使用させる。
d. IAM single-use password policyを有効にし、特権ユーザに設定する。(このようなオプションはなく、パスワードの有効期間は1〜1095日が設定可能) -
AWSの利用ついて、セキュリティのアセスメントの準備をしています。アセスメントの準備として、以下のIAMのベストプラクティスについて考慮すべき点は何でしょうか。2つ選択してください。
a. IAMユーザをあなたの組織のすべてのユーザに対して個々に作成する。
b. ルートアカウントと特権を付与したIAMユーザに対してMFAを設定する
c. IAMユーザとグループに対して最少の権限を付与するポリシーに設定する
d. すべてのユーザがアサインされ、パスワード、アクセスID/シークレットキー、X.509証明書をローテーションしていることを保証する。 -
ある企業はサービスを過去に使用したことのないAWSリージョンにデプロイする必要があります。この企業では、既にEC2インスタンス用のIAMロールがあり、DynamoDBにアクセスが可能となっています。同じ権限を新たなリージョンのEC2インスタンスに付与したいと考えていますが、どのようにしたら可能となりますか。
a. 新しいリージョンで`新たなIAMロールとポリシーを作成する。
b. 既存のIAMロールを新たなリージョンのEC2インスタンスにアサインする
c. IAMロールと構成するIAMポリシーを新たなリージョンにコピーし、インスタンスにアタッチする。
d. インスタンスのAMIを作成し、新しいリージョンにコピーして使用する。 -
新たなIAMユーザを作成した後、APIコールを可能とするには何をする必要がありますか。
a. ユーザにパスワードを付与する。
b. ユーザに対してMFAによる認証を有効にする。
c. ユーザに対してパスワードポリシーを設定する。
d. ユーザに対してアクセスキーのセットを作成する。 -
ある組織がIAMユーザを作成することを計画しています。彼らはIAMの制限を理解しようとしており、以下のように計画しています。IAMの制限に関し、どの選択肢が誤ったものですか。
a. IAMユーザは最大5グループに所属できる要リンク
b. 一つのAWSアカウントに100グループを作成することができる。
c. 一つのAWSアカウントに最大5000IAMユーザが作成できる。
d. 一つのAWSアカウントに250ロールが作成できる。 -
IAMでは、グループは以下とみなされる。
a. AWSアカウントの集合
b. EC2マシンのグループであり、グループで指定された許可を得ることができる。
c. IAMにグループはなく、ユーザとリソースのみ存在する。
d. ユーザの集合 -
IAMグループの数に関する制限はありますか。
a. ルートアカウントにはないが、IAMユーザにはある。
b. ない。
c. 特別な権限を付与しない限りある。
d. IAMユーザに対してある。 -
一つのAWSアカウント(ルートアカウント)に対し設定できるMFAデバイスのデフォルト最大数はいくつですか。
a. 1
b. 5
c. 15
d. 10 -
AWSマネジメントコンソールでIAMユーザを削除する場合、IAMはそのユーザの、署名された証明書、アクセスキーを削除しますか。
a. しない
b. 設定可能
c. する -
AWSでブログを運営しようとしています。AWSのクレデンシャルが必要なシナリオはどれですか。
a. EC2インスタンスを起動するためにAWSマネジメントコンソールにサインインする。
b. 起動しているインスタンスにソフトウェアをインストールするため、サインインする。SSH鍵が必要
c. Amazon RDSインスタンスを起動する。
d. ブログのコンテンツ管理システムにログインし、ブログを投稿する。ブログにおける認証が必要
e. S3を利用し、ブログに画像を投稿する -
ある組織に従業員が500名います。その組織では各部署でAWSにアクセスできるよう設定したいと考えています。下の記述の内、上記が可能となるソリューションに言及しているのはどれですか。
a. IAMロールを作成し、各ロールをユーザにアサインする。
b. IAMユーザを作成し、個々にパーミッションを与える。
c. IAMグループを作成し、IAMユーザをグループにアサインする。
d. AWS上に100を超えるIAMユーザを作成することはできない。 -
ある組織において、EC2インスタンス上にアプリケーションをホストしています。アプリケーションの設定のためこのインスタンスには複数のユーザが接続します。この組織ではベストプラクティスにしたがった、確かなセキュリティを実装しようと計画しています。よりよいセキュリティの状態とするために、適切でない記載を選択してください。
a. OSに対して最新のパッチを適用し、アップデートし続ける。
b. それぞれのシークレットアクセスキーで、IAMユーザのみEC2インスタンスに接続できるようにする要リンク
c. 全てのユーザのパスワードベースでのログインを禁止し、それぞれの鍵で接続できるようにする。
d. アプリケーション設定のためのEC2インスタンスに対する接続が必要がなくなったユーザは、接続できなくする手順を作成する。
本ページはJayendra’s Blogを許可のもと、日本語訳し、転載したものです。
本ページに関する全ての権利は、Jayendra’s Blogに留保されます。
随時、翻訳後掲載していきます。
Thanks, Jayendra san