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

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

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

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

これらのポリシードキュメント例を使用して IAM ID ベースのJSONポリシーを作成する方法については、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。詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: 条件」を参照してください。 IAM

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

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

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

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

では、次の AWS 管理ポリシーを使用できます CloudTrail。

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

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

    注記

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

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

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

追加リソース

を使用してユーザーやロールなどの ID を付与IAMする方法、アカウント内のリソースへのアクセスの詳細については、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。ユーザーに異なるアクセス許可を付与する必要がある場合は、 CloudTrail ポリシーをIAMグループまたはユーザーにアタッチできます。ポリシーを編集して、特定のアクセス許可を含めたり除外したりすることができます。独自のカスタムポリシーを作成することもできます。ポリシーは、ユーザーが実行できるアクションと、ユーザーがそれらのアクションを実行できるリソースを定義する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 Logs との統合を設定および管理 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「 ユーザーガイドhttps://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html」のAWS 「リソースの開始方法とアクセス管理」を参照してください。