こんにちはヤク学長です。
☆この記事はAWSアソシエイトZERO3版を網羅しています☆
本記事の目的は、「アソシエイト試験に合格するため」または「合格した方が知識を思い出す」ことを目的としています。
【本記事のもくじ】
まず、AWSに真剣に取り組むための概要を解説します。
下記の方法で、簡単に概要を抑えることができます。
- 1.IAM概要
- 2.IAMポリシー
- 3.IAMのアクティビティ監視とは
- 4.IAM権限のベストプラクティスとは
それでは、上から順番に見ていきます。
なお、本上記の方法を抑えれば成果が出ます。
今回からは「IAMについて全体的に学ぶ」として機能や特徴を学んでいきましょう。
基本的な機能や仕組みを理解し、IAMについて理解していきましょう。
記事の内容は「転載 & 引用OK」問題ありません。
1.IAM概要
IAMとは
IAM (Identity and Access Management)は、Amazon Web Services (AWS)が提供するクラウドベースの「アクセス管理サービス」です。
IAMは、AWSリソースへのアクセスを管理するために使用され、ユーザー、グループ、ロールを作成し、アクセス権限を割り当てることができます。
IAMは、AWSアカウントに紐付いたリソースに対して、認証や認可などのアクセス制御を行うことができ、ユーザーのアクセス権限を設定することで、セキュリティを強化することができます。
また、IAMは、アプリケーション開発者にとっても重要な機能であり、アプリケーションを開発する上で必要なアクセス権限を割り当てることができる機能となっています。
IAMの仕組み
IAMは、AWSアカウントに紐付いたリソースに対して、認証や認可などのアクセス制御を行うことができます。
IAMの仕組みは、以下の3つの要素で構成されます。
- ユーザー: IAMに登録されたユーザーアカウント。ユーザーは、各自のアクセス権限を割り当てられます。
- グループ: IAMに登録されたグループアカウント。グループには、複数のユーザーアカウントが割り当てられます。
- ポリシー: IAMに登録されたアクセス権限のルール。ポリシーは、ユーザーやグループに割り当てられます。
IAMのトピック/各名称詳細
IAMの主要なトピックについては、以下のようになります。
- ポリシー: IAMに登録されたアクセス権限のルール。ポリシーは、ユーザーやグループに割り当てられます。
- アクセスキー: IAMに登録されたアクセスキー。アクセスキーは、アプリケーションなどがAWSにアクセスするために必要です。
- ロール: IAMに登録されたロール。ロールは、他のアカウントに対してアクセス権限を割り当てるために使用されます。
- MFA (マルチファクタ認証): IAMに登録されたMFA (マルチファクタ認証)。MFAは、アクセス権限を強化するために使用されます。
- アクセスアナライザー: IAMに登録されたアクセスアナライザー。アクセスアナライザーは、アクセスログを分析し、アクセス権限に問題がないかを確認するために使用されます。
- オーガニゼーション単位: IAMに登録されたオーガニゼーション単位。オーガニゼーション単位は、複数のAWSアカウントを統合管理するために使用されます。
- カスタムポリシー: IAMに登録されたカスタムポリシー。カスタムポリシーは、デフォルトのポリシーに加えて、特定の要件に合わせてアクセス権限を設定するために使用されます。
- AWS Organizations: IAMに登録されたAWS Organizations。AWS Organizationsは、複数のAWSアカウントを統合管理するために使用されます。
IAMユーザーの権限2つ
IAMユーザーの主な権限は2つです。
- ルート権限: ルートアカウントは、アカウントを作成したユーザーで、すべての AWS リソースに対する完全なアクセス権を持ちます。
- 管理者権限: IAM ユーザーまたはグループに管理者権限を付与することで、そのユーザーまたはグループは AWS リソースに対して大部分の操作を行うことができますが、ルートアカウントと同じレベルの権限を持ちません。
IAM ユーザーは、アクセスキーやシークレットアクセスキーを使用して AWS リソースにアクセスします。
また、IAM ユーザーはグループに所属することができ、グループにはポリシーが割り当てられます。
これにより、グループに所属するユーザーは、グループに割り当てられたポリシーに従ってアクセスできるリソースを制限することができます。
IAMグループ
IAMグループは、IAMユーザーをまとめるための仕組みです。 IAMグループには、特定のアクセス権限を持ったポリシーが割り当てられ、グループに所属するすべてのユーザーはそのポリシーに従ってAWSリソースにアクセスできます。
これにより、複数のユーザーに対して同じアクセス権限を与えることが簡単になります。 また、グループに所属するユーザーを変更した場合にも、グループに割り当てられたポリシーを再度適用するだけで済みます。
例えば、開発チームのメンバーには開発用のAWSリソースにアクセスするためのアクセス権限を与えることができます。
また、運用チームのメンバーには運用用のAWSリソースにアクセスするための権限を与えることができます。
グループの作成や削除、ユーザーの追加、削除、グループに割り当てるポリシーの変更などは、IAM コンソールから行うことができます。
IAMユーザーとグループのどちらで始めるのが良いか?
少数利用がずっと継続する場合を除いて、少数利用も含めて最初からIAMグループで設定する方が良いです。
IAMロール
IAMロールは、AWS 上のサービスやアプリケーションに対して、特定のアクセス権限を与えるための仕組みです。
IAMロールには、特定のアクセス権限を持ったポリシーが割り当てられ、そのロールを使用するサービスやアプリケーションはそのポリシーに従ってAWSリソースにアクセスできます。
ロールには、2つの種類があります。
- EC2インスタンスロール:EC2インスタンスに割り当てられるロールで、そのインスタンスからAWSリソースにアクセスできます。
- スタンドアロンロール:AWSリソースにアクセスするためのロールで、アプリケーションやサービスが使用することができます。
ロールを使用することで、アクセスキーやシークレットアクセスキーをハードコーディングすることなく、安全にAWSリソースにアクセスすることができます。
2.IAMポリシー
IAM ポリシーは、IAM ユーザー、グループ、ロールに割り彑てられるアクセス権限の設定を記述したルールの集合です。 ポリシーは JSON 形式で記述され、AWS リソースに対するアクセス権限や制限を定義します。
IAM ポリシーのドキュメントは、JSON 形式で記述されています。 JSON 形式は、プログラミング言語によく似た構文を使用して、データを表現するためのフォーマットです。
IAM ポリシーのドキュメントを読むためには、以下の要素を理解する必要があります。
- Version: ポリシーのバージョンを示します。
- Statement: アクセスを許可するかどうかを判断するための条件を記述します。このセクションには、アクセスを許可するために必要な条件が記述されています。
- Effect: アクセスが許可された場合に実行されるアクションを示します。
- Action: アクセスを許可するアクションを示します。
- Resource: アクセスを許可するリソースを示します。
たとえば、以下の IAM ポリシーは、S3 バケットに対して、バケット名が “example-bucket” であり、そのバケットからファイルを読み取るアクセスを許可します。
このポリシーは、バージョン 2012-10-17 のポリシーであり、アクセスを許可するための条件はありません。 Effect のセクションでは、アクセスが許可された場合に実行されるアクション(s3:GetObject)を示しています。Action のセクションでは、許可するアクションを示しています。 Resource のセクションでは、許可するリソース(example-bucket)を示しています。
IAM ポリシーのドキュメントは、AWS Management Console でも作成および編集することができます。 AWS Management Console では、グラフィカルにポリシーを作成および編集することができるため、JSON の構文に慣れていない方でも簡単にポリシーを作成することができます。
また、AWSは標準ポリシーを提供しており、それを参考にしてカスタムポリシーを作成することもできます。
IAMポリシーの複数適用
IAMポリシーは、複数適用することができます。
- IAMユーザーやグループに複数のポリシーを割り当てることができます。これにより、複数のポリシーが適用され、複数のアクセス許可を与えることができます。
- IAMグループに割り当てられたポリシーは、そのグループに所属するユーザーにも適用されます。
- IAMロールにも複数のポリシーを割り当てることができます。
- 上記のように複数のポリシーを適用することで、アクセス権限を細かく制御することができます。
ただし、複数のポリシーが適用される場合、Denyの優先順位が高いため注意が必要です。
IAMポリシーのタイプ
IAM ポリシーには、次の 2 つのタイプがあります。
- インラインポリシー: IAM ユーザー、グループ、またはロールに直接割り当てられるポリシーです。インラインポリシーは、AWS Management Console や AWS CLI を使用して作成および割り当てることができます。
- マネージドポリシー: AWS が作成および管理する、一般的なアクセス権限のセットを提供するポリシーです。AWS Identity and Access Management (IAM)、Amazon S3、Amazon EC2などのサービスに対して提供されています。
インラインポリシーは、特定のニーズに合わせてカスタマイズすることができますが、マネージドポリシーは、AWSによって提供される標準のアクセス権限です。
インラインポリシーとマネージドポリシーを組み合わせることで、アクセス権限をより細かく制御することができます。
ポリシー
今までは、IAMのポリシーをご紹介してきましたが、他にもあります。
ユーザーベースのポリシーとは、特定のユーザーまたはグループに対してアクセス権限を設定するためのポリシーです。これにより、特定のユーザーまたはグループが特定のリソースにアクセスできるかどうかを制御できます。
リソースベースのポリシーは、特定のリソースに対してアクセス権限を設定するためのポリシーです。これにより、特定のリソースにアクセスできるユーザーまたはグループを制御できます。
結局、ポリシーの効果はなんなのか?
ポリシーは、アクセス権限や使用方法などを管理するために使用されます。主に以下のような効果があります。
- セキュリティ: ポリシーによって特定のリソースやデータにアクセスできる人を制限し、不正アクセスやデータの漏洩を防ぐことができます。
- アクセス制御: ポリシーによって特定のリソースやデータに対するアクセス権限を定義し、アクセスを制御することができます。
- コンプライアンス: ポリシーによって適用される法令や規制に従うことができるようになります。
- オーバーアイデア: ポリシーによって、リソースの使用や利用方法などを規定することができるので、望ましい使用方法を強制することができます。
- コスト削減: ポリシーによって、リソースの使用や利用方法を規定することで、資源の有効活用や過剰な使用を防ぐことができ、コスト削減につながります。
IAMロールの信頼ポリシー
IAMロールの信頼ポリシーは、IAMロールがどのサービスやエンティティに対してアクセス権限を付与するかを定義するポリシーです。
信頼ポリシーは、JSON形式で記述され、アクセス権限を与えるサービスやエンティティ、アクション、リソースなどを記述します。例えば、S3バケットに対してのみアクセスを許可するように記述することができます。
IAMロールは、信頼ポリシーを使用して、どのサービスやエンティティがそのロールを使用し、どのようなアクションを実行できるかを制御することができます。これにより、アクセス権限を厳密に制御することができ、セキュリティやコンプライアンスの観点からの利益を得ることができます。
3.IAMのアクティビティ監視
IAM のアクティビティ監視は、IAMサービスに対する操作やアクセスを記録し、それらを分析して異常や不正な操作を検知することができる機能です。
例えば、IAMのアクティビティ監視には、AWS CloudTrailというサービスがあります。
CloudTrailは、AWSアカウント内のすべてのAPIコールを記録し、ログデータを保存します。
これにより、IAMに対する操作履歴やアクセス履歴を確認し、不正な操作やセキュリティ上の問題を検知することができます。
この他にも、CloudWatch LogsやS3に保存されたログデータを使って、自分自身で監視設定を行うこともできます。
また、AWS Configを使用することで、IAMの設定の変更履歴を記録して、適切な状態になっているかの確認もできます。
詳しく見てみましょう。
AWSには多くのサービスがありますが、IAMアクティビティ監視に関連するサービスとしては主に以下のようなサービスがあります。
- AWS CloudTrail: AWSアカウント内のすべてのAPIコールを記録し、ログデータを保存するサービスです。IAMに対する操作履歴やアクセス履歴を確認し、不正な操作やセキュリティ上の問題を検知することができます。
- CloudWatch Logs: AWSリソースに対する操作やアクセスをログとして収集するサービスです。CloudTrailが提供するログデータを収集し、分析や可視化することができます。
- AWS Config: AWSリソースの構成情報を収集し、変更履歴を保存し、適切な状態になっているかの確認をすることができるサービスです。
- S3: AWSのオブジェクトストレージサービスです。 CloudTrailやCloudWatch Logsなどが出力したログデータを保存することができます。
- Amazon GuardDuty: AWSアカウント内のリソースに対する不正アクセスや不審な活動を検知するサービスです。 CloudTrailやVPC Flow Logsなどの様々なデータソースからリアルタイムにアクティビティを監視します。
- AWS Security Hub: AWSの各種セキュリティサービスの結果を収集し、統合的に管理することができるサービスです。 GuardDutyなどの他のセキュリティサービスの結果も収集し、統合的なセキュリティスコアを算出することができます。
4.IAM権限のベストプラクティスとは
権限のベストプラクティスは、IAM権限の管理方法に関する最適なアプローチです。これらのベストプラクティスを適用することで、IAM権限の管理がスムーズで安全になり、コストの削減につながります。
- 最小限の権限を与える: アクセス権限は必要最小限に留め、不要な権限を与えないようにします。
- ロールベースのアクセス制御: ユーザーやグループに対してアクセス権限を与える代わりに、特定のタスクや役割に対応したロールを作成し、それにアクセス権限を与えます。
- マルチファクタ認証を使用する: ユーザーアカウントに対しては、パスワードだけでなく、第2要素認証などを使用します。
- アクセスログを収集し、監視する: アクセスログを収集し、監視することで、不正アクセスや異常な操作を検知し、早期に対応できます。
- ポリシーを定期的に見直す: アクセス権限や権限の利用状況を定期的に見直し、不要なアクセス権限を削除します。
システムアカウントは利用しない: システムアカウント(rootアカウントなど)を利用しないことで、不正アクセスによる被害を防ぐことができます。
というわけで、今回は以上です。
引き続きで、徐々に発信していきます。
コメントや感想を受け付けています。ちょっとした感想でもいいので嬉しいです。
それでは、以上です。
https://medical-science-labo.jp/aws-amazon-asociate03/