Amazon EventBridge でのアイデンティティベースのポリシー (IAM ポリシー) の使用
アイデンティティベースのポリシーは、IAM アイデンティティにアタッチするアクセス許可ポリシーです。
トピック
EventBridge の使用に必要なアクセス許可
ユーザーが EventBridge コンソールや API を使用するためには、他の AWS リソースにアクセスする最小限のアクセス許可が必要です。他の AWS サービスは EventBridge にイベントを送信できるほか、EventBridge ルールのターゲットにすることもできます。次のリストは、AWS サービスの例と、それに対応する最小アクセス許可を示しています。
-
オートメーション
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 - EventBridge へのフルアクセスを付与します。
-
AmazonEventBridgeReadOnlyAccess - 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 ロールを作成するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
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 では、エンドポイント情報の表示に必要な許可が追加されました。 以下のアクションが追加されました。
|
2022 年 4 月 7 日 |
AmazonEventBridgeReadOnlyAccess — 既存のポリシーへの更新 |
EventBridge では、接続および API 宛先情報の表示に必要な許可が追加されました。 以下のアクションが追加されました。
|
2021 年 3 月 4 日 |
AmazonEventBridgeFullAccess — 既存のポリシーへの更新 |
EventBridge では、API 送信先の使用に必要な 以下のアクションが追加されました。
|
2021 年 3 月 4 日 |
EventBridge が変更の追跡を開始 |
EventBridge が AWS マネージドポリシーの変更の追跡を開始しました。 |
2021 年 3 月 4 日 |