Amazon EventBridge でのアイデンティティベースのポリシー (IAM ポリシー) の使用 - Amazon EventBridge

Amazon EventBridge でのアイデンティティベースのポリシー (IAM ポリシー) の使用

アイデンティティベースのポリシーは、IAM アイデンティティにアタッチするアクセス許可ポリシーです。

EventBridge の使用に必要なアクセス許可

ユーザーが EventBridge コンソールや API を使用するためには、他の AWS リソースにアクセスする最小限のアクセス許可が必要です。他の AWS サービスは EventBridge にイベントを送信できるほか、EventBridge ルールターゲットにすることもできます。次のリストは、AWS サービスの例と、それに対応する最小アクセス許可を示しています。

  • Automation

    • automation:CreateAction

    • automation:DescribeAction

    • automation:UpdateAction

  • Amazon EC2 Auto Scaling

    • autoscaling:DescribeAutoScalingGroups

  • AWS CloudTrail

    • cloudtrail:DescribeTrails

  • Amazon EC2

    • ec2:DescribeInstances

    • ec2:DescribeVolumes

  • EventBridge

    • events:DeleteRule

    • events:DescribeRule

    • events:DisableRule

    • events:EnableRule

    • events:ListRuleNamesByTarget

    • events:ListRules

    • events:ListTargetsByRule

    • events:PutEvents

    • events:PutRule

    • events:PutTargets

    • events:RemoveTargets

    • events:TestEventPattern

  • IAM

    • iam:ListRoles

  • Kinesis

    • kinesis:ListStreams

  • Lambda

    • lambda:AddPermission

    • lambda:ListFunctions

    • lambda:RemovePermission

  • Amazon SNS

    • sns:GetTopicAttributes

    • sns:ListTopics

    • sns:SetTopicAttributes

  • Amazon SWF 

    • swf:DescribeAction

    • swf:ReferenceAction

    • swf:RegisterAction

    • swf:RegisterDomain

    • swf:UpdateAction

これらの最小限必要なアクセス権限よりも制限された IAM ポリシーを作成している場合、その IAM ポリシーを使用するユーザーに対して EventBridge コンソールは意図したとおりには機能しません。「EventBridge の AWS 管理ポリシー」で説明されているとおり、ユーザーが EventBridge コンソールを使用できること、および AmazonEventBridgeReadOnlyAccess 管理ポリシーがユーザーにアタッチされていることを確認してください。

AWS CLI API のみを呼び出すユーザーに、最小限のアクセス許可を付与する必要はありません。

EventBridge の AWS 管理ポリシー

AWS は、AWSによって作成され管理されるスタンドアロンの IAM ポリシーを提供することで、多くの一般的ユースケースに対応します。管理ポリシー、つまり事前定義ポリシーは、一般的ユースケースに必要なアクセス許可を付与するため、どの許可が必要なのかをユーザーが調査する必要はありません。詳細については、「IAM ユーザーガイド」の「AWS 管理ポリシー」を参照してください。

アカウントのユーザーにアタッチできる以下の AWS 管理ポリシーは、EventBridge に固有のものです。

AmazonEventBridgeFullAccess ポリシー

AmazonEventBridgeFullAccess ポリシーは、すべての EventBridge アクションを使用するアクセス許可と、以下のアクセス許可を付与します。

  • iam:CreateServiceLinkedRole - EventBridge では、API 送信先のためのサービスロールをアカウントに作成するために、このアクセス許可が必要です。このアクセス許可は、API 送信先専用のロールをアカウントに作成するための IAM サービスアクセス許可のみを付与します。

  • iam:PassRole - EventBridge では、ルールのターゲットを呼び出す目的で EventBridge に呼び出しロールを渡すために、このアクセス許可が必要です。

  • Secrets Manager のアクセス許可 - API 送信先を認可するために接続リソースを通じて認証情報を提供するときに、アカウントでシークレットを管理するために、EventBridge はこれらのアクセス許可を必要とします。

以下の JSON は、AmazonEventBridgeFullAccess ポリシーを示しています。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "events:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/AmazonEventBridgeApiDestinationsServiceRolePolicy", "Condition": { "StringEquals": { "iam:AWSServiceName": "apidestinations.events.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret", "secretsmanager:DeleteSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:events!*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringLike": { "iam:PassedToService": "events.amazonaws.com" } } } ] }

AmazonEventBridgeReadOnlyAccess ポリシー

AmazonEventBridgeFullAccess ポリシーは、すべての読み取り EventBridge アクションを使用するアクセス許可を付与します。

以下の JSON は、AmazonEventBridgeFullAccess ポリシーを示しています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:DescribeRule", "events:DescribeEventBus", "events:DescribeEventSource", "events:ListEventBuses", "events:ListEventSources", "events:ListRuleNamesByTarget", "events:ListRules", "events:ListTargetsByRule", "events:TestEventPattern", "events:DescribeArchive", "events:ListArchives", "events:DescribeReplay", "events:ListReplays", "events:DescribeConnection", "events:ListConnections", "events:DescribeApiDestination", "events:ListApiDestinations", "events:ListEndpoints", "events:DescribeEndpoint" ], "Resource": "*" } ] }

イベントを送信する IAM ロール

イベントをターゲットに中継するには、EventBridge に IAM ロールが必要です。

EventBridge にイベントを送信するために IAM ロールを作成するには

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

  2. IAM ロールを作成するには、『IAM ユーザーガイド』の「AWS サービスにアクセス許可を委任するロールの作成」の手順に従います。その手順で、次のように実行します。

    • [Role Name] (ロール名) で、アカウント内で一意の名前を使用します。

    • [Select Role Type] (ロールタイプの選択) で [AWS Service Roles] (AWS サービスロール) を選択し、[Amazon EventBridge] を選択します。これで、ロールを引き受けるための Eventbridge アクセス許可が付与されます。

    • [Attach Policy] (ポリシーのアタッチ) で、[AmazonEventBridgeFullAccess] を選択します。

独自のカスタム IAM ポリシーを作成して、Eventbridge アクションとリソースのための権限を許可することもできます。これらのカスタムポリシーは、それらのアクセス許可が必要な IAM ユーザーまたはグループにアタッチできます。IAM ポリシーの詳細については、「IAM ユーザーガイド」の「IAM ポリシーの概要」を参照してください。カスタム IAM ポリシーの管理と作成の詳細については、『IAM ユーザーガイド』の「IAM ポリシーの管理」を参照してください。

IAM ロールを使用してターゲットにアクセスするために EventBridge に必要なアクセス許可

EventBridge が API 送信先、Kinesis ストリーム、Systems Manager Run Command、AWS Step Functions ステートマシン、または Amazon Elastic Container Service タスクであるターゲットにアクセスするには、そのターゲットにアクセスするための IAM ロールを指定し、そのロールに特定のポリシーをアタッチする必要があります。

ターゲットが API 送信先の場合、指定するロールには次のポリシーを含める必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "events:InvokeApiDestination" ], "Resource": [ "arn:aws:events:::api-destination/*" ] } ] }

ターゲットが Kinesis ストリームの場合、そのターゲットにイベントデータを送信するために使用されるロールは、次のポリシーを含める必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecord" ], "Resource": "*" } ] }

ターゲットが Systems Manager Run Command で、コマンドに 1 つ以上の InstanceIds 値を指定する場合は、指定するロールに次のポリシーを含める必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Action": "ssm:SendCommand", "Effect": "Allow", "Resource": [ "arn:aws:ec2:region:accountId:instance/instanceIds", "arn:aws:ssm:region:*:document/documentName" ] } ] }

ターゲットが Systems Manager Run Command で、コマンドに 1 つ以上のタグを指定する場合は、指定するロールに次のポリシーを含める必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Action": "ssm:SendCommand", "Effect": "Allow", "Resource": [ "arn:aws:ec2:region:accountId:instance/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/*": [ "[[tagValues]]" ] } } }, { "Action": "ssm:SendCommand", "Effect": "Allow", "Resource": [ "arn:aws:ssm:region:*:document/documentName" ] } ] }

ターゲットが AWS Step Functions ステートマシンの場合、指定するロールには次のポリシーを含む必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:*:*:stateMachine:*" ] } ] }

ターゲットが Amazon ECS タスクの場合は、指定するロールに次のポリシーを含める必要があります。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:*:account-id:task-definition/task-definition-name" ], "Condition": { "ArnLike": { "ecs:cluster": "arn:aws:ecs:*:account-id:cluster/cluster-name" } } }, { "Effect": "Allow", "Action":"iam:PassRole", "Resource": [ "*" ], "Condition": { "StringLike": { "iam:PassedToService": "ecs-tasks.amazonaws.com" } } }] }

カスタマーマネージドポリシーの例

次の例は EventBridge アクションのアクセス許可を付与するユーザーポリシーを示しています。これらのポリシーは、Eventbridge API、AWS SDK、または AWS CLI を使用しているときに機能します。

注記

すべての例で、米国西部 (オレゴン) リージョン (us-west-2) を使用しており、これらのポリシーを使用するために置き換える必要がある架空のアカウント ID が含まれています。

以下のサンプル IAM ポリシーを使用して、IAM ユーザー/ロールに対して Eventbridge アクセスを制限できます。

例 1: Amazon EC2 ターゲットへのアクセス

次のポリシーでは、Eventbridge の組み込みターゲットに対して、お客様に代わって Amazon EC2 アクションを実行することを許可します。組み込みのターゲットにルールを作成するには、AWS Management Console を使用する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TargetInvocationAccess", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:RebootInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:CreateSnapshot" ], "Resource": "*" } ] }

例 2: Kinesis

次のポリシーでは、Eventbridge に対して、お客様のアカウントの Kinesis ストリームにイベントを中継することを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KinesisAccess", "Effect": "Allow", "Action": [ "kinesis:PutRecord" ], "Resource": "*" } ] }

例 3: コンソールアクセス

次のポリシーでは、IAM ユーザーが EventBridge コンソールを使用することを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConsoleAccess", "Effect": "Allow", "Action": [ "automation:CreateAction", "automation:DescribeAction", "automation:UpdateAction", "autoscaling:DescribeAutoScalingGroups", "cloudtrail:DescribeTrails", "ec2:DescribeInstances", "ec2:DescribeVolumes", "events:*", "iam:ListRoles", "kinesis:ListStreams", "lambda:AddPermission", "lambda:ListFunctions", "lambda:RemovePermission", "sns:GetTopicAttributes", "sns:ListTopics", "sns:SetTopicAttributes", "swf:DescribeAction", "swf:ReferenceAction", "swf:RegisterAction", "swf:RegisterDomain", "swf:UpdateAction" ], "Resource": "*" }, { "Sid": "IAMPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::*:role/AWS_Events_Invoke_Targets", "arn:aws:iam::*:role/AWS_Events_Actions_Execution" ] } ] }

例 4: EventBridgeFullAccess

次のポリシーでは、すべての AWS リソースが AWS CLI および SDK を通じて EventBridge に対してアクションを実行することを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FullAccess", "Effect": "Allow", "Action": "events:*", "Resource": "*" }, { "Sid": "IAMPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/AWS_Events_Invoke_Targets" } ] }

例 5: ReadOnlyAccess

次のポリシーでは、すべての AWS リソースに EventBridge への読み取り専用のアクセスを許可しています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccess", "Effect": "Allow", "Action": [ "events:Describe*", "events:List*", "events:TestEventPattern" ], "Resource": "*" } ] }

例 6: タグ付けを使用してルールへのアクセスを制御する

ユーザーによる特定の Eventbridge ルールへのアクセスを許可し、それ以外のルールへのアクセスを禁止することができます。そのためには、両方のルールにタグ付けし、そのタグを参照する IAM ポリシーを使用します。Eventbridge リソースのタグ付けの詳細については、Amazon EventBridge のタグ を参照してください。

特定のタグでそのルールにのみアクセスを許可する IAM ポリシーをユーザーに付与することができます。アクセスを許可するルールは、その特定のタグでタグ付けすることで選択します。例えば次のポリシーでは、タグキー Stack の値が Prod のルールにユーザーアクセス権が付与されます。

{ "Statement": [ { "Effect": "Allow", "Action": "events:*", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Stack": "Prod" } } } ] }

IAM ポリシーステートメントの詳細については、『IAM ユーザーガイド』の「ポリシーを使用したアクセス制御」を参照してください。

Amazon EventBridge の AWS マネージドポリシーへの更新

このサービスがこれらの変更の追跡を開始してからの、EventBridge の AWS マネージドポリシーへの更新に関する詳細を確認してください。このページの変更に関する自動アラートについては、 [Document history] (ドキュメントの履歴) ページの RSS フィードをサブスクライブしてください。

変更 説明 日付

AmazonEventBridgeReadOnlyAccess — 既存のポリシーへの更新

EventBridge では、エンドポイント情報の表示に必要な許可が追加されました。

以下のアクションが追加されました。

  • events:ListEndpoints

  • events:DescribeEndpoint

2022 年 4 月 7 日

AmazonEventBridgeReadOnlyAccess — 既存のポリシーへの更新

EventBridge では、接続および API 宛先情報の表示に必要な許可が追加されました。

以下のアクションが追加されました。

  • events:DescribeConnection

  • events:ListConnections

  • events:DescribeApiDestination

  • events:ListApiDestinations

2021 年 3 月 4 日

AmazonEventBridgeFullAccess — 既存のポリシーへの更新

EventBridge では、API 送信先の使用に必要な iam:CreateServiceLinkedRole および AWS Secrets Manager 許可を含むようにポリシーが更新されました。

以下のアクションが追加されました。

  • secretsmanager:CreateSecret

  • secretsmanager:UpdateSecret

  • secretsmanager:DeleteSecret

  • secretsmanager:GetSecretValue

  • secretsmanager:PutSecretValue

2021 年 3 月 4 日

EventBridge が変更の追跡を開始

EventBridge が AWS マネージドポリシーの変更の追跡を開始しました。

2021 年 3 月 4 日