翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon でのIAMポリシー条件の使用 EventBridge
アクセス許可を付与するには、IAMポリシーステートメントでポリシー言語を使用して、ポリシーを有効にする条件を指定します。例えば、特定の日付の後にのみ適用されるポリシーを設定することができます。
ポリシーの条件は、キーと値のペアで構成されます。条件キーは大文字小文字を区別しません。
1 つの条件で複数の条件またはキーを指定する場合、 がアクセス許可を付与 EventBridge するには、すべての条件とキーが満たされている必要があります。1 つのキーに複数の値を持つ 1 つの条件を指定すると、いずれかの値が満たされた場合に アクセス許可 EventBridge が付与されます。
条件を指定する際にプレースホルダー、つまりポリシー変数も使用できます。詳細については、「 IAMユーザーガイド」の「ポリシー変数」を参照してください。IAM ポリシー言語での条件の指定の詳細については、「 IAMユーザーガイド」の「条件」を参照してください。
デフォルトでは、IAMユーザーとロールはアカウントのイベントにアクセスできません。イベントにアクセスするには、ユーザーに PutRule
APIアクションの権限が必要です。IAM ユーザーまたはロールがevents:PutRule
アクションに対して承認されている場合、特定のイベントに一致するルールを作成できます。ただし、ルールが役立つようにするには、ユーザーに events:PutTargets
アクションのアクセス許可も必要です。これは、ルールで CloudWatch メトリクスを公開する以上の操作を行う場合は、ルールにターゲットを追加する必要があるためです。
ユーザーまたはロールのポリシーステートメントに条件を指定して、IAM特定のソースとイベントタイプのセットにのみ一致するルールをユーザーまたはロールに作成させることができます。特定タイプのソースやイベントへのアクセスを許可するには、events:source
および events:detail-type
の条件キーを使用します。
同様に、IAMユーザーまたはロールのポリシーステートメントに条件を指定して、アカウント内の特定のリソースにのみ一致するルールを作成できるようにします。特定のリソースへのアクセスを許可するには、events:TargetArn
の条件キーを使用します。
次の例は、 PutRule
APIアクションで拒否ステートメント EventBridge を使用して、 の Amazon イベントを除くすべてのEC2イベントへのアクセスをユーザーに許可するポリシーです。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPutRuleForAllEC2Events", "Effect": "Deny", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2" } } } ] }
EventBridge 条件キー
次の表は、 のポリシーで使用できる条件キーとキーと値のペアを示しています EventBridge。
条件キー | キーと値のペア | 評価の種類 |
---|---|---|
aws:SourceAccount |
|
アカウント ID、Null |
aws:SourceArn |
イベントを送信しているルールARNの 。 |
ARN、Null |
イベント:creatorAccount |
[ |
creatorAccount、Null |
events:detail-type |
各パラメータの意味は次のとおりです。 |
詳細タイプ、Null |
events: 詳細。eventTypeCode |
[ |
eventTypeCode、Null |
events: detail.service |
[ |
サービス、Null |
events: 詳細userIdentity。principalId |
[ |
プリンシパル ID、Null |
イベント:eventBusInvocation |
[ |
eventBusInvocation、Null |
イベント:ManagedBy |
AWS サービスによって内部的に使用されます。ユーザーに代わって AWS サービスによって作成されたルールの場合、値はルールを作成したサービスのプリンシパル名です。 |
カスタマーポリシーで使用することは想定されていません。 |
events:source |
使用アイテム |
ソース、Null |
イベント:TargetArn |
[ |
ArrayOfARN、Null |
のポリシーステートメントの例については EventBridge、「」を参照してくださいAmazon EventBridge リソースへのアクセス許可の管理。
トピック
- EventBridge パイプの詳細
- 例: creatorAccount 条件を使用する
- 例: eventBusInvocation 条件を使用する
- 例: 特定のソースへのアクセスの制限
- 例: イベントパターンで個々に使用できる複数のソースの定義
- 例: イベントパターンで使用できるソースと DetailType を定義する
- 例: ソースがイベントパターンで定義されていることを確認する
- 例: イベントパターンに複数のソースがある場合にのみ許可されるソースのリストを定義する
- 例: detail.service による PutRule アクセスの制限
- 例: detail.eventTypeCode による PutRule アクセスの制限
- 例: 特定の からのAPI呼び出しの AWS CloudTrail イベントのみが許可されるようにPrincipalIdする
- 例: ターゲットへのアクセスの制限
EventBridge パイプの詳細
EventBridge Pipes は追加のIAMポリシー条件キーをサポートしていません。
例: creatorAccount
条件を使用する
次のポリシーステートメントの例では、ポリシーで creatorAccount
条件を使用し、creatorAccount
として指定されているアカウントがルールを作成したアカウントである場合にのみ、ルールの作成を許可する方法を示しています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForOwnedRules", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEqualsIfExists": { "events:creatorAccount": "${aws:PrincipalAccount}" } } } ] }
例: eventBusInvocation
条件を使用する
は、呼び出しがクロスアカウントターゲットまたはPutEvents
APIリクエストのどちらから発信されたかeventBusInvocation
を示します。この値は、ターゲットが他のアカウントのイベントバスである場合など、クロスアカウントターゲットを含むルールからの呼び出しの結果である場合、true になります。呼び出しがPutEvents
APIリクエストの結果である場合、値は false です。次の例は、クロスアカウントターゲットからの呼び出しを示しています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountInvocationEventsOnly", "Effect": "Allow", "Action": "events:PutEvents", "Resource": "*", "Condition": { "BoolIfExists": { "events:eventBusInvocation": "true" } } } ] }
例: 特定のソースへのアクセスの制限
次のポリシー例は、 IAM ユーザーにアタッチできます。ポリシー A はすべてのイベントに対して PutRule
APIアクションを許可しますが、ポリシー B は、作成されるルールのイベントパターンが Amazon EC2イベントと一致するPutRule
場合にのみ を許可します。
ポリシー A: すべてのイベントを許可
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForAllEvents", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*" } ] }
ポリシー B: — Amazon からのイベントのみを許可する EC2
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleForAllEC2Events", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2" } } } ] }
EventPattern
は PutRule
の必須引数です。そのため、ポリシー B が適用されるユーザーが以下のようなイベントパターンで PutRule
を呼び出すとします。
{ "source": [ "aws.ec2" ] }
この場合、ポリシーではこの特定のソース "aws.ec2"
を許可するため、ルールが作成されます。ただし、ポリシー B のユーザーが次のようなイベントパターンで PutRule
を呼び出した場合、ポリシーはこの特定のソース "aws.s3"
を許可しないため、ルールの作成は拒否されます。
{ "source": [ "aws.s3" ] }
基本的に、ポリシー B を持つユーザーは、Amazon から発信されるイベントと一致するルールの作成のみが許可されますEC2。したがって、Amazon からのイベントへのアクセスのみが許可されますEC2。
ポリシー A とポリシー B の比較については、以下の表を参照してください。
イベントパターン | ポリシー A で許可 | ポリシー B で許可 |
---|---|---|
|
はい |
はい |
|
あり |
いいえ (ソース aws.s3 は許可されない) |
|
はい |
はい |
|
あり |
いいえ(ソースの指定が必要) |
例: イベントパターンで個々に使用できる複数のソースの定義
次のポリシーでは、 IAM ユーザーまたはロールが、 のソースが Amazon EC2または Amazon のいずれかEventPattern
であるルールを作成することを許可しますECS。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsEC2OrECS", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": [ "aws.ec2", "aws.ecs" ] } } } ] }
以下の表で、このポリシーで許可または拒否されるイベントパターンを示しています。
イベントパターン | ポリシーで許可 |
---|---|
|
はい |
|
はい |
|
いいえ |
|
いいえ |
|
なし |
例: イベントパターンで使用できるソースと DetailType
を定義する
以下のポリシーでは、DetailType
が EC2 instance state change notification
に等しい aws.ec2
ソースからのイベントのみを許可します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsEC2AndDetailTypeIsInstanceStateChangeNotification", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:source": "aws.ec2", "events:detail-type": "EC2 Instance State-change Notification" } } } ] }
以下の表で、このポリシーで許可または拒否されるイベントパターンを示しています。
イベントパターン | ポリシーで許可 |
---|---|
|
なし |
|
いいえ |
|
はい |
|
いいえ |
|
なし |
例: ソースがイベントパターンで定義されていることを確認する
以下のポリシーでは、ソースフィールドがある EventPatterns
に対するルールの作成のみを許可します。このポリシーでは、IAMユーザーまたはロールは、特定のソースを提供しEventPattern
ない を使用してルールを作成できません。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsSpecified", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "Null": { "events:source": "false" } } } ] }
以下の表で、このポリシーで許可または拒否されるイベントパターンを示しています。
イベントパターン | ポリシーで許可 |
---|---|
|
はい |
|
はい |
|
なし |
例: イベントパターンに複数のソースがある場合にのみ許可されるソースのリストを定義する
以下のポリシーでは、複数のソースがある EventPatterns
に対してのみルールの作成を許可します。イベントパターンにある各ソースは、条件に指定されたリストに含まれている必要があります。ForAllValues
条件を使用するときは、条件リストの少なくとも 1 つの項目が定義されていることを確認してください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleIfSourceIsSpecifiedAndIsEitherS3OrEC2OrBoth", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "events:source": [ "aws.ec2", "aws.s3" ] }, "Null": { "events:source": "false" } } } ] }
以下の表で、このポリシーで許可または拒否されるイベントパターンを示しています。
イベントパターン | ポリシーで許可 |
---|---|
|
はい |
|
はい |
|
いいえ |
|
なし |
例: detail.service
による PutRule
アクセスの制限
ユーザーIAMまたはロールは、 events:details.service
フィールドで特定の値を持つイベントに対してのみルールを作成するように制限できます。の値はevents:details.service
、必ずしも AWS サービスの名前ではありません。
このポリシー条件は、セキュリティまたは不正使用に関連する AWS Health からのイベントを操作する場合に役立ちます。このポリシー条件を使用すると、これらの機密性の高いアラートへのアクセスを、必要があるユーザーのみに制限することができます。
たとえば、次のポリシーでは、events:details.service
の値が ABUSE
であるイベントのみにルールを作成することができます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleEventsWithDetailServiceEC2", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail.service": "ABUSE" } } } ] }
例: detail.eventTypeCode
による PutRule
アクセスの制限
ユーザーIAMまたはロールは、 events:details.eventTypeCode
フィールドに特定の値を持つイベントに対してのみルールを作成するように制限できます。このポリシー条件は、セキュリティまたは不正使用に関連する AWS Health からのイベントを操作する場合に役立ちます。このポリシー条件を使用すると、これらの機密性の高いアラートへのアクセスを、必要があるユーザーのみに制限することができます。
たとえば、次のポリシーでは、events:details.eventTypeCode
の値が AWS_ABUSE_DOS_REPORT
であるイベントのみにルールを作成することができます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleEventsWithDetailServiceEC2", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail.eventTypeCode": "AWS_ABUSE_DOS_REPORT" } } } ] }
例: 特定の からのAPI呼び出しの AWS CloudTrail イベントのみが許可されるようにPrincipalId
する
すべての AWS CloudTrail イベントには、イベントのdetail.userIdentity.principalId
パスでAPI呼び出しを行った PrincipalId ユーザーの があります。events:detail.userIdentity.principalId
条件キーを使用すると、IAMユーザーまたはロールのアクセスを、特定の アカウントからの CloudTrail イベントのみに制限できます。
"Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutRuleOnlyForCloudTrailEventsWhereUserIsASpecificIAMUser", "Effect": "Allow", "Action": "events:PutRule", "Resource": "*", "Condition": { "StringEquals": { "events:detail-type": [ "AWS API Call via CloudTrail" ], "events:detail.userIdentity.principalId": [ "AIDAJ45Q7YFFAREXAMPLE" ] } } } ] }
以下の表で、このポリシーで許可または拒否されるイベントパターンを示しています。
イベントパターン | ポリシーで許可 |
---|---|
|
なし |
|
はい |
|
なし |
例: ターゲットへのアクセスの制限
IAM ユーザーまたはロールに アクセスevents:PutTargets
許可がある場合、同じアカウント内の任意のターゲットを、アクセスが許可されているルールに追加できます。次のポリシーでは、ターゲットを特定のルール (アカウント 123456789012
のMyRule
) のみに追加することができます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutTargetsOnASpecificRule", "Effect": "Allow", "Action": "events:PutTargets", "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule" } ] }
ルールに追加できるターゲットを制限するには、events:TargetArn
条件キーを使用します。次のように、ターゲットを Lambda 関数だけに制限できます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutTargetsOnASpecificRuleAndOnlyLambdaFunctions", "Effect": "Allow", "Action": "events:PutTargets", "Resource": "arn:aws:events:us-east-1:123456789012:rule/MyRule", "Condition": { "ArnLike": { "events:TargetArn": "arn:aws:lambda:*:*:function:*" } } } ] }