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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

デフォルトでは、IAM ユーザーとロールには CloudTrail リソースを作成または変更するためのアクセス許可はありません。また、AWS Management Console や AWS CLI、AWS API を使用してタスクを実行することもできません。IAM 管理者は、ユーザーとロールに必要な、指定されたリソースで特定の API オペレーションを実行するアクセス許可をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらのアクセス権限が必要な IAM ユーザー、グループ、またはロールにそのポリシーをアタッチします。

JSON ポリシードキュメントのこれらの例を使用して、IAM アイデンティティベースのポリシーを作成する方法については、IAM ユーザーガイドの「JSON タブでのポリシーの作成」を参照してください。

ポリシーのベストプラクティス

ID ベースのポリシーは非常に強力です。アカウント内で CloudTrail リソースを作成、アクセス、または削除できるかどうかを決定します。これらのアクションを実行すると、 AWS アカウント でコストが発生する可能性があります。アイデンティティベースのポリシーを作成または編集するときは、以下のガイドラインと推奨事項に従います。

  • の使用を開始しますAWS管理ポリシー— CloudTrail の使用をすぐに開始するには、AWS管理ポリシーで、従業員に必要なアクセス許可を付与します。これらのポリシーはアカウントですでに有効になっており、 によって管理および更新されていますAWS 詳細については、IAM ユーザーガイドの「AWS 管理ポリシーを使用したアクセス許可の使用開始」を参照してください。

  • 最小権限を付与する – カスタムポリシーを作成するときは、タスクの実行に必要な許可のみを付与します。最小限のアクセス許可から開始し、必要に応じて追加のアクセス許可を付与します。この方法は、寛容なアクセス許可で始め、後でそれらを強化しようとするよりも安全です。詳細については、IAM ユーザーガイドの「最小限の特権を認める」を参照してください。

  • 機密性の高い操作に MFA を有効にする – 追加セキュリティとして、機密性の高いリソースまたは API 操作にアクセスするために IAM ユーザーに対して、Multi-Factor Authentication (MFA) の使用を要求します。詳細については、IAM ユーザーガイドの「AWS での多要素認証 (MFA) の使用」を参照してください。

  • 追加のセキュリティとしてポリシー条件を使用する – 実行可能な範囲内で、ID ベースのポリシーでリソースへのアクセスを許可する条件を定義します。例えば、要求が発生しなければならない許容 IP アドレスの範囲を指定するための条件を記述できます。指定された日付または時間範囲内でのみリクエストを許可する条件を書くことも、SSL や MFA の使用を要求することもできます。詳細については、「」を参照してください。IAM JSON ポリシー要素: 条件()IAM ユーザーガイド

CloudTrail には、サービス固有のコンテキストキーはありません。Conditionポリシーステートメントの要素。

例: 指定した証跡の許可および拒否アクション

次の例では、このポリシーを持つユーザーが証跡のステータスと設定を表示し、My-First-Trail という名前の証跡のログ記録を開始および停止できるようにするポリシーを示します。この証跡は、米国東部 (オハイオ) リージョン (ホームリージョン) でAWSID を持つアカウント123456789012

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus", "cloudtrail:GetEventSelectors" ], "Resource": [ "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-First-Trail" ] } ] }

以下の例は、名前のないトレイルについて CloudTrail アクションを明示的に拒否するポリシーを示しています。マイファースト・トレイル

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "cloudtrail:*" ], "NotResource": [ "arn:aws:cloudtrail:us-east-2:123456789012:trail/My-First-Trail" ] } ] }

例: 特定の証跡に対するアクションのポリシーの作成と適用

アクセス許可とポリシーを使用して、ユーザーが CloudTrail 証跡に対して特定のアクションを実行できるかどうかを制御できます。

たとえば、社内の開発者グループのユーザーが、特定の証跡のログ記録を開始または停止しないようにしたいが、その証跡に対して DescribeTrails アクションと GetTrailStatus アクションを実行するアクセス許可は付与したいという場合です。また、開発者グループのユーザー自らが管理する証跡では、StartLogging アクションまたは StopLogging アクションを実行する必要があります。

2 つのポリシーステートメントを作成して、IAM で作成する開発者グループにアタッチできます。IAM のグループの詳細については、「」を参照してください。IAM グループ()IAM ユーザーガイド

最初のポリシーでは、指定する証跡 ARN の StartLogging アクションと StopLogging アクションを拒否します。次の例で、証跡 ARN は arn:aws:cloudtrail:us-east-2:123456789012:trail/Example-Trail です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1446057698000", "Effect": "Deny", "Action": [ "cloudtrail:StartLogging", "cloudtrail:StopLogging" ], "Resource": [ "arn:aws:cloudtrail:us-east-2:123456789012:trail/Example-Trail" ] } ] }

2 番目のポリシーでは、DescribeTrailsおよびGetTrailStatusアクションは、すべての CloudTrail リソースで許可されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1446072643000", "Effect": "Allow", "Action": [ "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus" ], "Resource": [ "*" ] } ] }

開発者グループのユーザーが、最初のポリシーに指定された証跡に対してログ記録を開始または終了しようとした場合、そのユーザーはアクセス拒否の例外を受け取ります。開発者グループのユーザーは、自らが作成して管理する証跡のログ記録を開始および停止することはできます。

次の CLI の例は、開発者グループが devgroup という名前の AWS CLI プロファイルで構成されていることを示します。最初に、devgroup のユーザーが describe-trails コマンドを実行します。

$ aws --profile devgroup cloudtrail describe-trails

このコマンドは正常に終了します。

{ "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Default", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Example-Trail", "IsMultiRegionTrail": false, "S3BucketName": "myS3bucket ", "HomeRegion": "us-east-2" } ] }

次に、このユーザーは、最初のポリシーに指定された証跡に対する get-trail-status コマンドを実行します。

$ aws --profile devgroup cloudtrail get-trail-status --name Example-Trail

このコマンドは正常に終了します。

{ "LatestDeliveryTime": 1449517556.256, "LatestDeliveryAttemptTime": "2015-12-07T19:45:56Z", "LatestNotificationAttemptSucceeded": "", "LatestDeliveryAttemptSucceeded": "2015-12-07T19:45:56Z", "IsLogging": true, "TimeLoggingStarted": "2015-12-07T19:36:27Z", "StartLoggingTime": 1449516987.685, "StopLoggingTime": 1449516977.332, "LatestNotificationAttemptTime": "", "TimeLoggingStopped": "2015-12-07T19:36:17Z" }

さらに、devgroup のユーザーが同じ証跡に対して stop-logging コマンドを実行します。

$ aws --profile devgroup cloudtrail stop-logging --name Example-Trail

このコマンドではアクセス拒否の例外が返されます。

A client error (AccessDeniedException) occurred when calling the StopLogging operation: Unknown

このユーザーは同じ証跡に対して start-logging コマンドを実行します。

$ aws --profile devgroup cloudtrail start-logging --name Example-Trail

このコマンドではアクセス拒否の例外が返されます。

A client error (AccessDeniedException) occurred when calling the StartLogging operation: Unknown

CloudTrail コンソールを使用するためのアクセス許可を付与する

CloudTrail の管理のためのアクセス許可を付与する

ユーザーが CloudTrail を管理できるようにするには、CloudTrail タスクに関連付けられているアクションを実行するための明示的なアクセス許可を、IAM ユーザーに付与する必要があります。ほとんどのシナリオでは、事前定義されたアクセス許可を含む AWS 管理ポリシーを使用して、これを行うことができます。

注記

CloudTrail の管理タスクを実行するためにユーザーに付与するアクセス許可は、Amazon S3 バケットにログファイルを配信するため、または Amazon SNS トピックに通知を送信するために、CloudTrail 自体に必要なアクセス許可と同じではありません。これらのアクセス許可の詳細については、「CloudTrail の Amazon S3 バケットポリシー」を参照してください。

Amazon CloudWatch Logs との統合を設定した場合、CloudTrail には、Amazon CloudWatch Logs ロググループにイベントを配信するためのロールも必要です。これには、ロール自体と同様に、ロールを作成するための追加のアクセス許可が必要になります。詳細については、「CloudTrail コンソールでの Amazon CloudWatch Logs 情報を表示および設定するアクセス許可の付与」および「CloudWatch Logs へのイベントの送信」を参照してください。

一般的な方法としては、適切なアクセス許可を持つ IAM グループを作成し、そのグループに個々の IAM ユーザーを追加します。たとえば、CloudTrail アクションへのフルアクセスが必要なユーザーのための IAM グループを作成し、それとは別に、証跡情報を表示するだけで作成または変更する必要のないユーザーのためのグループを作成します。

CloudTrail アクセスのための IAM グループとユーザーを作成するには

  1. で IAM コンソールを開きます。https://console.aws.amazon.com/iam

  2. ダッシュボードから、ナビゲーションペインの [Groups]、[Create New Group] の順に選択します。

  3. 名前を入力し、[Next Step (次のステップ)] を選択します。

  4. リポジトリの []ポリシーのアタッチ[] ページで、CloudTrail 用に次のいずれかのポリシーを探し、選択します。

    • FullAccess。このポリシーでは、グループ内のユーザーに CloudTrail アクションへのフルアクセスが付与されます。これらのユーザーには、Amazon S3 バケット、CloudWatch Logs ログのロググループ、および証跡の Amazon SNS トピックを管理する(ただし、削除しない)アクセス許可があります。

      注記

      -FullAccessポリシーでは、サービスにリンクされたロールであるAWSアカウント. このロールを持つユーザーは、最も機密かつ重要な監査機能を無効にしたり、再設定したりすることができます。AWSアカウント. そのため、このポリシーはアカウント管理者にのみ適用され、このポリシーの使用は厳密に制御および監視する必要があります。

    • [AWSCloudTrailReadOnlyAccess]。このポリシーにより、グループのユーザーは CloudTrail コンソールを表示し、最近のイベントやイベント履歴などを確認できます。これらのユーザーは既存の証跡とそのバケットを表示することもできます。ユーザーは、イベント履歴のファイルをダウンロードできますが、証跡を作成または更新することはできません。

    注記

    個々のアクションへのアクセス許可を付与するカスタムポリシーを作成することもできます。詳細については、「CloudTrail ユーザーにカスタムアクセス許可を付与する」を参照してください。

  5. [Next step] を選択します。

  6. 作成するグループの情報を確認します。

    注記

    グループ名を編集することはできますが、再度ポリシーを選択する必要があります。

  7. [Create group (グループの作成)] を選択します。作成したグループが、グループのリストに表示されます。

  8. 作成したグループ名を選択し、[] を選択します。アクションのグループ化[] を選択し、[] を選択しますユーザーをグループに追加する

  9. リポジトリの []ユーザーをグループに追加する[] ページで、既存の IAM ユーザーを選択し、[] を選択します。ユーザーの追加。IAM ユーザーをまだ持っていない場合は、[] を選択します。新しいユーザーの作成] を選択し、ユーザー名を入力して、[] を選択します。作成

  10. 新しいユーザーを作成した場合は、ナビゲーションペインで [Users] を選択し、ユーザーごとに以下を実行します。

    1. ユーザーを選択します。

    2. ユーザーがコンソールを使用して CloudTrail を管理する場合は、セキュリティの認証情報[] タブで、パスワードの管理ユーザーのパスワードを作成します。

    3. ユーザーが CLI または API を使用して CloudTrail を管理する場合で、アクセスキーをまだ作成していないときは、セキュリティの認証情報[] タブで、アクセスキーの管理にアクセスし、アクセスキーを作成します。このキーは安全な場所に保存してください。

    4. 各ユーザーに認証情報 (アクセスキーまたはパスワード) を提供します。

その他のリソース

IAM のユーザー、グループ、ポリシー、アクセス許可の作成の詳細については、「」を参照してください。コンソールを使用した Admins グループの作成およびアクセス許可とポリシー()IAM ユーザーガイド

AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソールアクセス許可を付与する必要はありません。代わりに、実行しようとしている API 操作に一致するアクションのみへのアクセスが許可されます。

ユーザーに自分のアクセス許可の表示を許可

この例では、ユーザー ID にアタッチされたインラインおよび管理ポリシーの表示を IAM ユーザーに許可するポリシーを作成する方法を示します。このポリシーには、コンソールで、または AWS CLI か AWS API を使用してプログラム的に、このアクションを完了するアクセス許可が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

CloudTrail ユーザーにカスタムアクセス許可を付与する

CloudTrail ポリシーによって、CloudTrail を使用して作業するユーザーにアクセス許可を付与します。ユーザーにそれぞれ異なるアクセス許可を付与する必要がある場合は、CloudTrail ポリシーを IAM グループまたはユーザーにアタッチします。ポリシーを編集して、特定のアクセス許可を含めたり除外したりすることができます。独自のカスタムポリシーを作成することもできます。ポリシーとは、ユーザーが実行を許可されているアクションと、ユーザーが実行を許可されているアクションの対象となるリソースを定義する JSON ドキュメントです。個別の例については、「例: 指定した証跡の許可および拒否アクション」および「例: 特定の証跡に対するアクションのポリシーの作成と適用」を参照してください。

読み取り専用アクセス

次の例は、CloudTrail 証跡に対する読み取り専用アクセスを付与するポリシーです。これは管理ポリシー [AWSCloudTrailReadOnlyAccess] に相当します。これによってユーザーに付与されるアクセス許可は証跡の情報を見るためのもので、証跡を作成または更新することはできません。また、このポリシーによって、Amazon S3 バケットのオブジェクトを読み取るアクセス許可も付与されますが、作成や削除の許可は付与されません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketLocation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudtrail:DescribeTrails", "cloudtrail:GetTrail", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents", "cloudtrail:ListPublicKeys", "cloudtrail:ListTags", "s3:ListAllMyBuckets", "kms:ListAliases", "lambda:ListFunctions" ], "Resource": "*" } ] }

このポリシーステートメントの Effect 要素で、アクションが許可されるか拒否されるかを指定します。Action 要素には、ユーザーによる実行を許可する特定のアクションを指定します。Resource 要素には、それらのアクションをユーザーが実行する対象の AWS リソースを指定します。CloudTrail アクションへのアクセスを制御するポリシーの場合、Resource要素は、通常*、「すべてのリソース」を意味するワイルドカード。

Action 要素の値は、サービスがサポートする API に対応しています。アクションの前にはcloudtrail:CloudTrail アクションを指すことを示します。次の例に示すように、* ワイルドカード文字を Action 要素で使用できます。

  • "Action": ["cloudtrail:*Logging"]

    これにより、"Logging」で終わるすべての CloudTrail アクション (StartLogging,StopLogging).

  • "Action": ["cloudtrail:*"]

    これは、すべての CloudTrail アクションを許可しますが、他のAWSのサービス。

  • "Action": ["*"]

    これは、すべての AWS アクションを許可します。このアクセス許可は、アカウントの AWS 管理者として行動するユーザーに適しています。

読み取り専用ポリシーでは、CreateTrailUpdateTrailStartLoggingStopLogging の各アクションのアクセス許可はユーザーに付与されません。このポリシーを持つユーザーは、証跡の作成、証跡の更新、ログ記録のオンとオフの切り替えを行うことはできません。CloudTrail アクションのリストについては、AWS CloudTrailAPI リファレンス

フルアクセス

次の例は、CloudTrail へのフルアクセスを付与するポリシーです。これは管理ポリシーFullAccess。これは、すべての CloudTrail アクションを実行するアクセス許可をユーザーに付与します。また、ユーザーは Amazon S3 のデータイベントをログに記録し、AWS LambdaAmazon S3 バケットのファイルの管理、CloudWatch Logs による CloudTrail ログイベントの監視方法の管理、およびユーザーが関連付けられているアカウントの Amazon SNS トピックの管理などを行うことができます。

重要

-FullAccessポリシーまたは同等のアクセス許可は、AWSアカウント. このロールまたは同等のアクセスを持つユーザーは、最も機密かつ重要な監査機能を無効にしたり、再設定したりすることができます。AWSアカウント. そのため、このポリシーはアカウント管理者にのみ適用され、このポリシーの使用は厳密に制御および監視する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sns:AddPermission", "sns:CreateTopic", "sns:SetTopicAttributes", "sns:GetTopicAttributes" ], "Resource": [ "arn:aws:sns:*:*:aws-cloudtrail-logs*" ] }, { "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPolicy" ], "Resource": [ "arn:aws:s3:::aws-cloudtrail-logs*" ] }, { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketPolicy" ], "Resource": "*" }, { "Effect": "Allow", "Action": "cloudtrail:*", "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:*:*:log-group:aws-cloudtrail-logs*" ] }, { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:GetRolePolicy", "iam:GetUser" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "cloudtrail.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:CreateAlias", "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lambda:ListFunctions" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "dynamodb:ListGlobalTables", "dynamodb:ListTables" ], "Resource": "*" } ] }

表示するアクセス許可を付与するAWS ConfigCloudTrail コンソールに関する情報

CloudTrail コンソールで、イベント情報は、そのイベントに関連するリソースを含めて、CloudTrail コンソールで表示することができます。これらのリソースでは、AWS Config アイコンを選択すると、そのリソースのタイムラインを AWS Config コンソールで表示できます。次のポリシーをユーザーにアタッチすると、読み取り専用の AWS Config アクセスが付与されます。このポリシーでは、AWS Config の設定を変更するアクセス許可は付与されません。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "config:Get*", "config:Describe*", "config:List*" ], "Resource": "*" }] }

詳細については、「で参照されるリソースの表示AWS Config」を参照してください。

CloudTrail コンソールでの Amazon CloudWatch Logs 情報を表示および設定するアクセス許可の付与

十分なアクセス許可がある場合は、CloudTrail コンソールで CloudWatch Logs へのイベントの配信を表示および設定できます。これらは、CloudTrail 管理者に付与されているものを超える可能性があるアクセス許可です。CloudTrail と CloudWatch CloudWatch Logs 統合を設定および管理する管理者にこのポリシーをアタッチします。このポリシーは、CloudTrail または CloudWatCloudWatch Logs アクセス許可を直接付与するのではなく、CloudTrail が CloudWatch Logs グループにイベントを正常に配信するために引き受けるロールを作成および設定するために必要なアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:PutRolePolicy", "iam:AttachRolePolicy", "iam:ListRoles", "iam:GetRolePolicy", "iam:GetUser" ], "Resource": "*" }] }

詳細については、「Amazon CloudWatch Logs を使用した CloudTrail ログファイルのモニタリング」を参照してください。

追加情報

IAM のユーザー、グループ、ポリシー、アクセス許可の作成の詳細については、「」を参照してください。最初の IAM ユーザーおよび管理者グループの作成およびアクセス管理()IAM ユーザーガイド