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

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

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

デフォルトでは、 ユーザーおよびロールには、 CloudTrail リソースを作成または変更する権限はありません。また、、 AWS Command Line Interface (AWS CLI) AWS Management Console、または を使用してタスクを実行することはできません AWS API。IAM管理者は、リソースで必要なアクションを実行するためのアクセス許可をユーザーに付与する IAMポリシーを作成できます。その後、管理者はロールに IAMポリシーを追加し、ユーザーはロールを引き受けることができます。

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

各リソースタイプの の形式など CloudTrail、 で定義されるアクションとARNsリソースタイプの詳細については、「サービス認可リファレンス」の「 のアクション、リソース、および条件キー AWS CloudTrail」を参照してください。

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

ID ベースのポリシーは、ユーザーのアカウントで誰かが CloudTrail リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションを実行すると、 AWS アカウントに料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

  • AWS 管理ポリシーを開始し、最小特権のアクセス許可に移行する – ユーザーとワークロードにアクセス許可を付与するには、多くの一般的なユースケースにアクセス許可を付与する AWS 管理ポリシーを使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義して、アクセス許可をさらに減らすことをお勧めします。詳細については、「IAMユーザーガイド」の「AWS マネージドポリシー」または「AWS ジョブ機能の管理ポリシー」を参照してください。

  • 最小特権を適用する – IAM ポリシーでアクセス許可を設定する場合は、タスクの実行に必要なアクセス許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用してアクセス許可を適用する方法の詳細については、IAM ユーザー ガイドの「IAM のポリシーとアクセス許可」を参照してください。

  • IAMポリシーで条件を使用してアクセスをさらに制限する – ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。たとえば、ポリシー条件を記述して、すべてのリクエストを を使用して送信するように指定できますSSL。条件を使用して、サービスアクションが などの特定の を通じて使用される場合に AWS のサービス、サービスアクションへのアクセスを許可することもできます AWS CloudFormation。詳細については、「 IAMユーザーガイド」のIAMJSON「ポリシー要素: 条件」を参照してください。

  • IAM Access Analyzer を使用してIAMポリシーを検証し、安全で機能的なアクセス許可を確保する – IAM Access Analyzer は、ポリシーがポリシー言語 (JSON) とIAMベストプラクティスに準拠するように、新規および既存のIAMポリシーを検証します。 IAMAccess Analyzer は、安全で機能的なポリシーの作成に役立つ 100 を超えるポリシーチェックと実用的な推奨事項を提供します。詳細については、「 IAMユーザーガイド」のIAM「Access Analyzer によるポリシーの検証」を参照してください。

  • 多要素認証を要求する (MFA) – でIAMユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、セキュリティを強化MFAするために をオンにします。API オペレーションが呼び出されるMFAタイミングを要求するには、ポリシーにMFA条件を追加します。詳細については、「 IAMユーザーガイド」の「 を使用した安全なAPIアクセスMFA」を参照してください。

IAM でのベストプラクティスの詳細については、「IAMユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。

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

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

次の例は、 ポリシーを持つユーザーが証跡のステータスと設定を表示し、 という名前の証跡のログ記録を開始および停止できるようにするポリシーを示していますMy-First-Trail。この証跡は、 ID AWS アカウント を持つ の米国東部 (オハイオ) リージョン (ホームリージョン) で作成されました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 アクションを明示的に拒否するポリシーを示していますMy-First-Trail

{ "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「グループ」を参照してください。

最初のポリシーでは、指定した証跡の StartLoggingおよび StopLoggingアクションを拒否ARNします。次の例では、証跡は 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": [ "*" ] } ] }

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

次の例は、 という名前の AWS CLI プロファイルで設定された開発者グループを示していますdevgroup。最初に、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": "amzn-s3-demo-bucket", "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

例: タグに基づいたイベントデータストアを作成または削除するためのアクセスの拒否

次のポリシー例では、次の条件のうち少なくとも 1 つが満たされない場合は、CreateEventDataStoreでイベントデータストアを作成する権限が拒否されます。

  • イベントデータストア自体にはstageのタグキーが適用されていません

  • ステージタグの値はalphabetagamma、またはprodのいずれでもありません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloudtrail:CreateEventDataStore", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/stage": "true" } } }, { "Effect": "Deny", "Action": "cloudtrail:CreateEventDataStore", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/stage": [ "alpha", "beta", "gamma", "prod" ] } } } ] }

以下のポリシー例では、イベントデータストアに prod の値の stage タグがある場合、DeleteEventDataStoreのイベントデータストアを削除するアクセス許可は拒否されます。このようなポリシーで、イベントデータストアが誤って削除されないように保護することができます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "cloudtrail:DeleteEventDataStore", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/stage": "prod" } } } ] }

CloudTrail コンソールを使用する

AWS CloudTrail コンソールにアクセスするには、最小限のアクセス許可のセットが必要です。これらのアクセス許可により、 内の CloudTrail リソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

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

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

IAM ロールまたはユーザーが証跡、イベントデータストア、チャネルなどの CloudTrail リソースを管理できるようにするには、 CloudTrail タスクに関連付けられたアクションを実行するための明示的なアクセス許可を付与する必要があります。ほとんどの場合、事前定義されたアクセス許可を含む AWS 管理ポリシーを使用できます。

注記

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

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

次の AWS マネージドポリシーを使用できます CloudTrail。

  • AWSCloudTrail_FullAccess – このポリシーは、証跡、イベントデータストア、チャネルなどの CloudTrail リソースに対する CloudTrail アクションへのフルアクセスを提供します。このポリシーは、 CloudTrail 証跡、イベントデータストア、チャネルを作成、更新、削除するために必要なアクセス許可を提供します。

    このポリシーは、Amazon S3 バケット、 CloudWatch ログのロググループ、および証跡の Amazon SNSトピックを管理するアクセス許可も提供します。ただし、 AWSCloudTrail_FullAccess管理ポリシーには、Amazon S3 バケット、 CloudWatch ログのロググループ、または Amazon SNSトピックを削除するアクセス許可はありません。他の の マネージドポリシーの詳細については AWS のサービス、「 AWS マネージドポリシーリファレンスガイド」を参照してください。

    注記

    AWSCloudTrail_FullAccess ポリシーは、 間で広く共有されることを意図していません AWS アカウント。このロールを持つユーザーは、 AWS アカウントで最も機密かつ重要な監査機能を無効にしたり、再設定したりすることができます。このため、このポリシーはアカウント管理者にのみ適用する必要があります。このポリシーの使用を厳重に管理および監視する必要があります。

  • AWSCloudTrail_ReadOnlyAccess – このポリシーは、最近のイベントやイベント履歴など、 CloudTrail コンソールを表示するアクセス許可を付与します。また、このポリシーにより、既存の証跡、イベントデータストア、およびチャネルを表示することもできます。このポリシーが適用されているロールとユーザーはイベント履歴をダウンロードできますが、証跡、イベントデータストア、またはチャンネルを作成または更新することはできません。

アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

追加リソース

を使用して、ユーザーやロールなどの ID IAMにアカウント内のリソースへのアクセスを許可する方法の詳細については、「 IAMユーザーガイド」の「 のセットアップIAM」および「 AWS リソースのアクセス管理」を参照してください。

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

読み取り専用アクセス

次の例は、 CloudTrail 証跡への読み取り専用アクセスを許可するポリシーを示しています。これは 管理ポリシーに相当します。 AWSCloudTrail_ReadOnlyAccess。 これにより、証跡情報を表示するアクセス許可がユーザーに付与されますが、証跡を作成または更新することはできません。

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

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

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

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

    これにより、「ログ記録」 (StartLogging、) で終わるすべての CloudTrail アクションが許可されますStopLogging

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

    これにより、すべての CloudTrail アクションが許可されますが、他の AWS サービスのアクションは許可されません。

  • "Action": ["*"]

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

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

フル アクセス

次の例は、 へのフルアクセスを許可するポリシーを示しています CloudTrail。これは 管理ポリシーに相当します。 AWSCloudTrail_FullAccess。 これにより、すべての CloudTrail アクションを実行するアクセス許可がユーザーに付与されます。また、ユーザーは Amazon S3 と でデータイベントを記録したり AWS Lambda、Amazon S3 バケットでファイルを管理したり、 CloudWatch ログによる CloudTrail ログイベントのモニタリング方法を管理したり、ユーザーが関連付けられているアカウントの Amazon SNSトピックを管理したりできます。

重要

AWSCloudTrail_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:::amzn-s3-demo-logging-bucket1*" ] }, { "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": "*" } ] }

CloudTrail コンソールで AWS Config 情報を表示するアクセス許可の付与

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

{ "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 ログファイルをモニタリングする」を参照してください。

追加情報

を使用して、ユーザーやロールなどの ID IAMにアカウント内のリソースへのアクセスを許可する方法の詳細については、IAMユーザーガイド」のAWS 「 リソースの開始方法とアクセス管理」を参照してください。