のアイデンティティベースのポリシーの例 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 ポリシーの作成を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

{ "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" ] } ] }

次の例は、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": [ "*" ] } ] }

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

次の例は、 という名前の 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": "DOC-EXAMPLE-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 ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または 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 要素の値は、サービスがサポートする API に対応しています。アクションがアクションを参照していることを示す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 https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.htmlユーザーガイド」の「リソースの開始方法」と AWS 「リソースへのアクセス管理」を参照してください。