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

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

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

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

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

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

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

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

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

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

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

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

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

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

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」を参照してください。

最初のポリシーでは、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": [ "*" ] } ] }

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

次の例は、 という名前の 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 するために必要なアクセス許可とは異なります。これらのアクセス許可の詳細については、「の Amazon S3 バケットポリシー CloudTrail」を参照してください。

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

では、次の 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 コンソールを表示するアクセス許可を付与します。また、このポリシーにより、既存の証跡、イベントデータストア、およびチャネルを表示することもできます。このポリシーが適用されているロールとユーザーはイベント履歴をダウンロードできますが、証跡、イベントデータストア、またはチャンネルを作成または更新することはできません。

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

追加リソース

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

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

自分の権限の表示をユーザーに許可する

この例では、IAMユーザーがユーザー ID にアタッチされているインラインポリシーと管理ポリシーを表示できるようにするポリシーを作成する方法を示します。このポリシーには、コンソールで、または 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:::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": "*" } ] }

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

追加情報

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