このトピックでは、EventBridge のサービスリンクロールの背景情報、ポリシードキュメント、使用上の注意、FAQ について説明します。
背景情報
EventBridge は、機能を実装するために別のAlibaba Cloudサービスにアクセスする必要がある場合があります。この場合、EventBridge は、特定のサービスリンクロールを引き受けて、Alibaba Cloudサービスにアクセスするための権限を取得する必要があります。詳細については、「サービスリンクロール」をご参照ください。
EventBridge は、以下のサービスリンクロールを自動的に作成できます。
AliyunServiceRoleForEventBridgeSendToFC
EventBridge は、AliyunServiceRoleForEventBridgeSendToFC ロールを引き受けて、Function Compute で関数を呼び出す権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToFC ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToFC ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"fc:InvokeFunction", // 関数の呼び出し
"fc:ListServices", // サービスの一覧表示
"fc:ListFunctions" // 関数の一覧表示
"fc:ListServiceVersions", // サービスバージョンの一覧表示
"fc:ListAliases", // エイリアスの一覧表示
"fc:RegisterEventSource", // イベントソースの登録
"fc:DeregisterEventSource", // イベントソースの登録解除
"fc:ListEventSources" // イベントソースの一覧表示
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "sendevent-fc.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSendToMNS
EventBridge は、AliyunServiceRoleForEventBridgeSendToMNS ロールを引き受けて、Simple Message Queue (formerly MNS) (SMQ) でメッセージを送信および公開するための権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToMNS ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToMNS ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"mns:SendMessage", // メッセージの送信
"mns:GetQueueAttributes", // キュー属性の取得
"mns:PublishMessage", // メッセージの公開
"mns:ListQueue", // キューの一覧表示
"mns:ListTopic", // トピックの一覧表示
"mns:ReceiveMessage", // メッセージの受信
"mns:BatchReceiveMessage", // メッセージのバッチ受信
"mns:PeekMessage", // メッセージのピーク
"mns:BatchPeekMessage", // メッセージのバッチピーク
"mns:ChangeMessageVisibility", // メッセージの可視性の変更
"mns:DeleteMessage" // メッセージの削除
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "sendevent-mns.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSendToSMS
EventBridge は、AliyunServiceRoleForEventBridgeSendToSMS ロールを引き受けて、Short Message Service (SMS) にアクセスしてテキストメッセージを送信する権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToSMS ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToSMS ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"dysms:SendSms", // SMS の送信
"dysms:SendBatchSms", // SMS のバッチ送信
"dysms:QuerySendDetails", // 送信詳細のクエリ
"dysms:QuerySmsSign", // SMS 署名のクエリ
"dysms:QuerySmsTemplate" // SMS テンプレートのクエリ
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "sendevent-sms.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSendToDirectMail
EventBridge は、AliyunServiceRoleForEventBridgeSendToDirectMail ロールを引き受けて、Direct Mail にアクセスしてメールを送信する権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToDirectMail ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToDirectMail ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"dm:SingleSendMail", // 単一メールの送信
"dm:BatchSendMail", // メールの一括送信
"dm:QueryMailAddressByParam" // パラメータによるメールアドレスのクエリ
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "sendevent-directmail.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSourceRocketMQ
EventBridge は、AliyunServiceRoleForEventBridgeSourceRocketMQ ロールを引き受けて、ApsaraMQ for RocketMQ のリソースにアクセスする権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSourceRocketMQ ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSourceRocketMQ ポリシーのドキュメントを示しています。
{
"Version":"1",
"Statement":[
{
"Action":[
"mq:QueryInstanceBaseInfo", // インスタンスの基本情報のクエリ
"mq:QueryConsumerStatus", // コンシューマー状態のクエリ
"mq:SUB" // メッセージの購読
],
"Resource":"*",
"Effect":"Allow"
},
{
"Action":"ram:DeleteServiceLinkedRole",
"Resource":"*",
"Effect":"Allow",
"Condition":{
"StringEquals":{
"ram:ServiceName":"source-rocketmq.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSendToRocketMQ
EventBridge は、AliyunServiceRoleForEventBridgeSendToRocketMQ ロールを引き受けて、ApsaraMQ for RocketMQ にメッセージを公開する権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToRocketMQ ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToRocketMQ ポリシーのドキュメントを示しています。
{
"Version":"1",
"Statement":[
{
"Action":[
"mq:PUB", // メッセージの公開
"mq:QueryInstanceBaseInfo", // インスタンスの基本情報のクエリ
"mq:QueryTopicStatus", // トピック状態のクエリ
"mq:QueryConsumerAccumulate", // コンシューマー累積のクエリ
"mq:QueryConsumerStatus" // コンシューマー状態のクエリ
],
"Resource":"*",
"Effect":"Allow"
},
{
"Action":"ram:DeleteServiceLinkedRole",
"Resource":"*",
"Effect":"Allow",
"Condition":{
"StringEquals":{
"ram:ServiceName":"sendevent-rocketmq.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeConnectVPC
EventBridge は、AliyunServiceRoleForEventBridgeConnectVPC ロールを引き受けて、Virtual Private Cloud (VPC) のリソースにアクセスする権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeConnectVPC ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeConnectVPC ポリシーのドキュメントを示しています。
{
"Version":"1",
"Statement":[
{
"Action":[
"vpc:DescribeVpcs", // VPC の記述
"vpc:DescribeVSwitches", // VSwitch の記述
"vpc:DescribeVSwitchAttributes" // VSwitch 属性の記述
],
"Resource":"*",
"Effect":"Allow"
},
{
"Action":[
"ecs:DescribeSecurityGroups", // セキュリティグループの記述
"ecs:CreateSecurityGroup", // セキュリティグループの作成
"ecs:CreateNetworkInterface", // ネットワークインターフェイスの作成
"ecs:DeleteNetworkInterface", // ネットワークインターフェイスの削除
"ecs:DescribeNetworkInterfaces", // ネットワークインターフェイスの記述
"ecs:CreateNetworkInterfacePermission", // ネットワークインターフェイス権限の作成
"ecs:DescribeNetworkInterfacePermissions", // ネットワークインターフェイス権限の記述
"ecs:DeleteNetworkInterfacePermission" // ネットワークインターフェイス権限の削除
],
"Resource":"*",
"Effect":"Allow"
},
{
"Action":"ram:DeleteServiceLinkedRole",
"Resource":"*",
"Effect":"Allow",
"Condition":{
"StringEquals":{
"ram:ServiceName":"connect-vpc.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSourceActionTrail
EventBridge は、AliyunServiceRoleForEventBridgeSourceActionTrail ロールを引き受けて、ActionTrail にアクセスして操作レコードをクエリおよび配信する権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSourceActionTrail ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSourceActionTrail ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"actiontrail:CreateServiceTrail", // サービストレイルの作成
"actiontrail:DeleteServiceTrail" // サービストレイルの削除
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "source-actiontrail.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSourceRabbitMQ
EventBridge は、AliyunServiceRoleForEventBridgeSourceRabbitMQ ロールを引き受けて、ApsaraMQ for RabbitMQ のリソースにアクセスする権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSourceRabbitMQ ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSourceRabbitMQ ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"amqp:ListInstance", // インスタンスの一覧表示
"amqp:ListVhost", // 仮想ホストの一覧表示
"amqp:ListExchange", // 交換機の一覧表示
"amqp:GetVhost", // 仮想ホストの取得
"amqp:GetExchange", // 交換機の取得
"amqp:GetQueue", // キューの取得
"amqp:BasicRecover", // メッセージの回復
"amqp:BasicCancel", // コンシューマーのキャンセル
"amqp:BasicConsume", // メッセージの消費
"amqp:BasicAck", // メッセージの確認応答
"amqp:BasicNack", // メッセージの否定応答
"amqp:BasicReject", // メッセージの拒否
"amqp:QueuePurge", // キューのクリア
"amqp:BasicGet" // メッセージの取得
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "source-rabbitmq.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSendToRabbitMQ
EventBridge は、AliyunServiceRoleForEventBridgeSendToRabbitMQ ロールを引き受けて、ApsaraMQ for RabbitMQ にメッセージを公開する権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToRabbitMQ ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToRabbitMQ ポリシーのドキュメントを示しています。
{
"Version":"1",
"Statement":[
{
"Action":[
"amqp:ListInstance", // インスタンスの一覧表示
"amqp:ListVhost", // 仮想ホストの一覧表示
"amqp:ListExchange", // 交換機の一覧表示
"amqp:GetVhost", // 仮想ホストの取得
"amqp:CreateExchange", // 交換機の作成
"amqp:GetExchange", // 交換機の取得
"amqp:CreateQueue", // キューの作成
"amqp:GetQueue", // キューの取得
"amqp:BasicRecover", // メッセージの回復
"amqp:BasicPublish", // メッセージの公開
"amqp:BasicAck", // メッセージの確認応答
"amqp:BasicNack" // メッセージの否定応答
],
"Resource":"*",
"Effect":"Allow"
},
{
"Action":"ram:DeleteServiceLinkedRole",
"Resource":"*",
"Effect":"Allow",
"Condition":{
"StringEquals":{
"ram:ServiceName":"sendevent-rabbitmq.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSourceKafka
EventBridge は、AliyunServiceRoleForEventBridgeSourceKafka ロールを引き受けて、ApsaraMQ for Kafka のリソースにアクセスする権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSourceKafka ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSourceKafka ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"alikafka:ListInstance", // インスタンスの一覧表示
"alikafka:ListSaslUser" // SASL ユーザーの一覧表示
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"ram:ServiceName": "source-kafka.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSendToKafka
EventBridge は、AliyunServiceRoleForEventBridgeSendToKafka ロールを引き受けて、ApsaraMQ for Kafka にメッセージを公開する権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToKafka ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToKafka ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"alikafka:ListInstance", // インスタンスの一覧表示
"alikafka:ListSaslUser" // SASL ユーザーの一覧表示
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Condition": {
"StringEquals": {
"ram:ServiceName": "sendevent-kafka.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSendToRDS
EventBridge は、AliyunServiceRoleForEventBridgeSendToRDS ロールを引き受けて、ApsaraDB RDS にデータを配信する権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToRDS ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToRDS ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"rds:DescribeDBInstanceAttribute", // DB インスタンス属性の記述
"rds:DescribeDatabases", // データベースの記述
"rds:DescribeAccounts" // アカウントの記述
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "sendevent-rds.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSourceCMS
EventBridge は、AliyunServiceRoleForEventBridgeSourceKafka ロールを引き受けて、CloudMonitor のリソースにアクセスする権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSourceCMS ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSourceCMS ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cms:DescribeSystemEventAttribute", // システムイベント属性の記述
"cms:DescribeSystemEventCount", // システムイベント数の記述
"cms:DescribeSystemEventHistogram" // システムイベントヒストグラムの記述
],
"Resource": "*"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "source-cms.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSendToSAE
EventBridge は、AliyunServiceRoleForEventBridgeSendToSAE ロールを引き受けて、Serverless App Engine (SAE) にアクセスし、SAE にデータを配信します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSendToSAE ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSendToSAE ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"sae:ExecJob" // ジョブの実行
],
"Resource": "*"
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "sendevent-sae.eventbridge.aliyuncs.com"
}
}
}
]
}
AliyunServiceRoleForEventBridgeSourceMqtt
EventBridge は、AliyunServiceRoleForEventBridgeSourceCMS ロールを引き受けて、ApsaraMQ for MQTT のリソースにアクセスする権限を取得します。
次のサンプルコードは、AliyunServiceRoleForEventBridgeSourceMqtt ロールにアタッチされている AliyunServiceRolePolicyForEventBridgeSourceMqtt ポリシーのドキュメントを示しています。
{
"Version": "1",
"Statement": [
{
"Action": [
"mq:SUB" // メッセージの購読
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": "ram:DeleteServiceLinkedRole",
"Resource": "*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": "source-mqtt.eventbridge.aliyuncs.com"
}
}
}
]
}
使用上の注意
サービスリンクロールを削除すると、EventBridge は対応する Alibaba Cloud サービスにイベントを公開できなくなります。ご注意ください。対応する機能を使用するには、必要なロールを再作成する必要があります。詳細については、「サービスリンクロールの作成」をご参照ください。
サービスリンクロールの削除方法については、「サービスリンクロールの削除」をご参照ください。
FAQ
Resource Access Management (RAM) ユーザーのために EventBridge のサービスリンクロールが自動的に作成されないのはなぜですか。
Alibaba Cloudアカウントにサービスリンクロールが作成されている場合、RAMユーザーはAlibaba Cloudアカウントのサービスリンクロールを継承します。RAMユーザーがサービスリンクロールを継承できない場合は、RAMコンソールにログインし、次のカスタムポリシーを作成して、RAMユーザーにアタッチします。
{
"Version":"1",
"Statement":[
{
"Action":"ram:CreateServiceLinkedRole", // サービスリンクロールの作成
"Resource":"acs:ram:*:Alibaba Cloud account ID:role/*",
"Effect":"Allow",
"Condition":{
"StringEquals":{
"ram:ServiceName":[
"sendevent-fc.eventbridge.aliyuncs.com",
"sendevent-mns.eventbridge.aliyuncs.com",
"sendevent-sms.eventbridge.aliyuncs.com",
"sendevent-directmail.eventbridge.aliyuncs.com",
"source-rocketmq.eventbridge.aliyuncs.com",
"source-mns.eventbridge.aliyuncs.com",
"source-cms.eventbridge.aliyuncs.com",
"source-mqtt.eventbridge.aliyuncs.com",
"source-sls.eventbridge.aliyuncs.com",
"sendevent-sae.eventbridge.aliyuncs.com",
"sendevent-rocketmq.eventbridge.aliyuncs.com",
"connect-vpc.eventbridge.aliyuncs.com",
"source-actiontrail.eventbridge.aliyuncs.com",
"source-rabbitmq.eventbridge.aliyuncs.com",
"sendevent-rabbitmq.eventbridge.aliyuncs.com",
"source-kafka.eventbridge.aliyuncs.com",
"sendevent-kafka.eventbridge.aliyuncs.com",
"sendevent-rds.eventbridge.aliyuncs.com",
"sendevent-arms.eventbridge.aliyuncs.com"
]
}
}
}
]
}
Alibaba Cloud account ID をAlibaba Cloudアカウントの ID に置き換えます。
カスタムポリシーをRAMユーザーにアタッチした後も、RAMユーザーのサービスリンクロールが自動的に作成されない場合は、AliyunEventBridgeFullAccess ポリシーをRAMユーザーにアタッチします。RAMユーザーにアタッチされたサンプルポリシーについては、「ポリシーと例」をご参照ください。