AWS CloudTrail で IAM を使用する方法 - AWS CloudTrail

AWS CloudTrail で IAM を使用する方法

CloudTrail へのアクセスを管理するために IAM を使用する前に、CloudTrail でどの IAM 機能が使用できるかを理解しておく必要があります。CloudTrail およびその他の AWS のサービスが IAM と連携する方法の概要を把握するには、IAM ユーザーガイドの「IAM と連携する AWS のサービス」を参照してください。

IAM アイデンティティベースのポリシーで CloudTrail は機能しますが、リソースベースのポリシーでは機能しません。アイデンティティベース (IAM) のポリシーおよびリソースポリシーの間の詳細な相違点については、IAM ユーザーガイドの「アイデンティティベースのポリシーとリソースベースのポリシー」を参照してください。

CloudTrail アイデンティティベースのポリシー

IAM アイデンティティベースポリシーでは、許可または拒否するアクションとリソース、またアクションを許可または拒否する条件を指定できます。CloudTrail は、特定のアクションとリソースをサポートしています。ポリシーステートメントの Condition 要素で使用できる CloudTrail サービス固有の条件キーはありません。JSON ポリシーで使用するすべての要素については、IAM ユーザーガイドの「IAM JSON ポリシーの要素のリファレンス」を参照してください。

Actions

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action 要素は、ポリシー内のアクセスを許可または拒否するために使用できるアクションを記述します。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。一致する API オペレーションを持たない許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは、依存アクションと呼ばれます。

このアクションは、関連付けられた操作を実行するための許可を付与するポリシーで使用されます。

CloudTrail のポリシーアクションは、アクションの前にプレフィックス cloudtrail: を使用します。たとえば、ListTags API オペレーションを使用して証跡のタグを一覧表示する権限を付与するには、ポリシーに cloudtrail:ListTags アクションを含めます。ポリシーステートメントには、Action または NotAction エレメントを含める必要があります。CloudTrail は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。

単一のステートメントに複数のアクションを指定するには、次のようにコンマで区切ります。

"Action": [ "cloudtrail:AddTags", "cloudtrail:ListTags", "cloudtrail:RemoveTags

ワイルドカード (*) を使用して複数のアクションを指定することができます。例えば、Get という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

"Action": "cloudtrail:Get*"

CloudTrail アクションのリストを表示するには、IAM ユーザーガイドの「AWS CloudTrail によって定義されたアクション」を参照してください。

Resources

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスするかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシーエレメントは、アクションが適用されるオブジェクトを指定します。ステートメントには、NotResource または Resource エレメントを含める必要があります。ベストプラクティスとして、リソースは Amazon リソースネーム (ARN) を使用して指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

操作のリスト化など、リソースレベルの許可をサポートしないアクションの場合は、ワイルドカード (*) を使用して、ステートメントがすべてのリソースに適用されることを示します。

"Resource": "*"

CloudTrail では、プライマリリソースは証跡です。リソースにはそれぞれ、一意の Amazon リソースネーム (ARN) が関連付けられています。ポリシーでは、ARN を使用して、ポリシーを適用するリソースを識別します。CloudTrail では、現在、しばしばサブリソースと呼ばれる他のリソースタイプはサポートされていません。

CloudTrail 証跡リソースには次のような ARN があります。

arn:${Partition}:cloudtrail:${Region}:${Account}:trail/{TrailName}

ARN の形式の詳細については、「Amazon リソースネーム (ARN) と AWS のサービスの名前空間」を参照してください。

例えば、ID 123456789012 を持つ AWS アカウントで、「My-Trail」という名前の、お客様のステートメントで米国東部 (オハイオ) リージョンに存在する証跡を指定するには、次の ARN を使用します。

"Resource": "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-Trail"

その AWS リージョンの特定のアカウントに属するすべての証跡を指定するには、ワイルドカード (*) を使用します。

"Resource": "arn:aws:cloudtrail:us-east-2:123456789012:trail/*"

リソースの作成など、一部の CloudTrail アクションは、特定のリソースで実行できません。このような場合は、ワイルドカード (*) を使用する必要があります。

"Resource": "*"

CloudTrail API アクションの多くが複数のリソースと関連します。例えば、CreateTrail にはログファイルを保存するための Amazon S3 バケットが必要です。したがって、IAM ユーザーにはそのバケットへ書き込みするためのアクセス許可が必要です。複数のリソースを単一のステートメントで指定するには、ARN をカンマで区切ります。

"Resource": [ "resource1", "resource2"

CloudTrail リソースタイプとその ARN のリストを表示するには、IAM ユーザーガイドの「AWS CloudTrail で定義されるリソース」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「AWS CloudTrail で定義されるアクション」を参照してください。

条件キー

管理者は AWS JSON ポリシーを使用して、誰が何にアクセスするかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition エレメント (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition エレメントはオプションです。イコールや以下などの条件演算子を使用する条件式を作成して、リクエスト内に値のあるポリシーの条件に一致させることができます。

1 つのステートメントに複数の Condition エレメントを指定する場合、または 1 つの Condition エレメントに複数のキーを指定する場合、AWS が論理 AND 演算を使用してそれらを評価します。単一の条件キーに複数の値を指定する場合、AWS が論理 OR 演算を使用して条件を評価します。ステートメントのアクセス許可が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば、IAM ユーザー名でタグ付けされている場合のみ、リソースにアクセスする IAM ユーザーアクセス許可を付与できます。詳細については、IAM ユーザーガイドの「IAM ポリシーエレメント: 変数およびタグ」を参照してください。

AWS はグローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。

CloudTrail は独自の条件キーを定義しませんが、一部のグローバル条件キーの使用をサポートしています。すべてのAWSグローバル条件キーを確認するには、IAM ユーザーガイドのAWS グローバル条件コンテキストキー」を参照してください。

CloudTrail でサポートされる条件キーのリストを確認するには、IAM ユーザーガイドAWS CloudTrail の条件キーを参照してください。どのアクションおよびリソースと条件キーを使用できるかについては、「AWS CloudTrail で定義されるアクション」を参照してください。

Examples

CloudTrail アイデンティティベースのポリシーの例を表示するには、「AWS CloudTrail アイデンティティベースのポリシーの例」を参照してください。

CloudTrail のリソースベースのポリシー

CloudTrail では、 リソースベースのポリシーはサポートされていません。

アクセスコントロールリスト

アクセスコントロールリスト (ACL) は、リソースにアタッチできる被付与者のリストです。これらは、アタッチされているリソースにアクセスするためのアクセス許可をアカウントに付与します。CloudTrail は ACL をサポートしていませんが、Amazon S3 はサポートしています。例えば、1 つ以上の証跡のログファイルを保存する Amazon S3 バケットリソースに ACL をアタッチできます。ACL のバケットへのアタッチの詳細については、Amazon Simple Storage Service ユーザーガイドの「ACL によるアクセスの管理」を参照してください。

CloudTrail タグに基づいた認可

CloudTrail リソースにタグをアタッチすることはできますが、CloudTrail はタグに基づいてアクセスを制御することはサポートしていません。

タグを CloudTrail リソースにアタッチすることも、CloudTrail へのリクエストでタグを渡すこともできます。CloudTrail リソースのタグ付けの詳細については、「証跡の作成AWS Command Line Interface で証跡を作成、更新、管理する」を参照してください。

CloudTrail IAM ロール

IAM ロールは AWS アカウント内のエンティティで、特定の許可を持っています。

CloudTrail での一時的な認証情報の使用

一時的な認証情報を使用して、フェデレーションでサインイン、IAM ロールを引き受ける、またはクロスアカウントロールを引き受けることができます。一時的なセキュリティ認証情報を取得するには、AssumeRole または GetFederationToken などの AWS STS API オペレーションを呼び出します。

CloudTrail では、一時認証情報の使用をサポートしています。

サービスにリンクされたロール

サービスにリンクされたロールによって、AWS サービスが他のサービスのリソースにアクセスして自動的にアクションを完了できます。サービスにリンクされたロールは、IAM アカウント内に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

CloudTrail では AWS Organizations との統合のためのサービスリンクのロールがサポートされています。このロールは、組織内のすべての AWS アカウントのイベントをログに記録する組織証跡の作成に必要です。CloudTrail サービスにリンクされたロールの作成または管理の詳細については、「 のサービスにリンクされたロールの使用AWS CloudTrail」を参照してください。

サービスロール

この機能では、サービスロールをユーザーに代わって引き受けることをサービスに許可します。このロールにより、サービスはユーザーに代わって他のサービスのリソースにアクセスし、アクションを実行できます。サービスロールは、IAM アカウントに表示され、サービスによって所有されます。つまり、IAM 管理者は、このロールのアクセス許可を変更できます。ただし、これを行うことにより、サービスの機能が損なわれる場合があります。

CloudTrail は、サービスロールをサポートします。