Cara menggunakan aws eventbridge putevents javascript

For a complete list of AWS SDK developer guides and code examples, see Using EventBridge with an AWS SDK. This topic also includes information about getting started and details about previous SDK versions.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bus peristiwa default di AWS akun Anda hanya mengizinkan peristiwa dari satu akun. Anda dapat memberikan izin tambahan untuk bus peristiwa dengan melampirkan kebijakan berbasis sumber daya. Dengan kebijakan berbasis sumber daya, Anda dapat mengizinkan PutEvents, PutRule, dan,

{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
0 panggilan API dari akun lain. Anda juga dapat menggunakan kondisi IAM dalam kebijakan untuk memberikan izin kepada organisasi, menerapkan tag, atau filter peristiwa hanya dari aturan atau akun tertentu. Anda dapat menetapkan kebijakan berbasis sumber daya untuk bus peristiwa ketika Anda membuat atau setelahnya.

EventBridge API yang menerima bus peristiwa

{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
1parameter sepertiPutRule,
{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
0,
{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
4,
{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
5,
{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
6, dan
{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
7juga menerima acara bus ARN. Gunakan parameter ini untuk referensi bus peristiwa lintas akun atau lintas Wilayah melalui API. Misalnya, Anda dapat menghubungi PutRule untuk membuat aturan pada bus peristiwa di akun yang berbeda tanpa perlu menerima peran.

Anda dapat melampirkan contoh kebijakan dalam topik ini ke peran IAM untuk memberikan izin mengirim peristiwa ke akun atau Wilayah yang berbeda. Gunakan peran IAM untuk menetapkan kebijakan dan batasan kontrol organisasi tentang siapa yang dapat mengirim peristiwa dari akun Anda ke akun lain. Kami menyarankan untuk selalu menggunakan peran IAM ketika target aturan adalah bus acara. Anda dapat melampirkan peran IAM menggunakan

{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }
9panggilan. Untuk informasi tentang cara membuat aturan untuk mengirim peristiwa ke akun atau Wilayah lain, lihat Mengirim dan menerima Amazon EventBridge peristiwaAWSrekening.

Mengelola izin bus peristiwa

Gunakan prosedur berikut untuk memodifikasi izin bus peristiwa yang ada. Untuk informasi tentang cara menggunakanAWS CloudFormationuntuk membuat kebijakan bus acara, lihatAWS::Events::EventBusKebijakan.

Untuk mengelola izin bus peristiwa yang ada

  1. Buka Amazon EventBridge konsol dihttps://console.aws.amazon.com/events/.

  2. Di panel navigasi kiri, pilih Bus peristiwa.

  3. Dalam Nama, pilih nama bus peristiwa untuk mengelola izinnya.

    Jika kebijakan sumber daya melekat pada bus peristiwa, maka kebijakan tersebut akan ditampilkan.

  4. Pilih Mengelola izin, dan lakukan salah satu langkah berikut:

    • Masukkan kebijakan yang mencakup izin yang akan diberikan pada bus peristiwa. Anda dapat menyisipkan kebijakan dari sumber lain, atau memasukkan JSON untuk kebijakan.

    • Untuk menggunakan templat kebijakan, pilih Muat templat. Ubah kebijakan yang sesuai untuk lingkungan Anda, dan tambahkan tindakan tambahan yang mengizinkan utama dalam kebijakan untuk menggunakannya.

  5. Pilih Perbarui.

Templat memberikan contoh pernyataan kebijakan yang dapat Anda sesuaikan untuk akun dan lingkungan Anda. Templat bukan kebijakan yang valid. Anda dapat memodifikasi templat untuk kasus penggunaan Anda, atau Anda dapat menyalin salah satu contoh kebijakan dan menyesuaikannya.

Templat memuat kebijakan yang mencakup contoh bagaimana cara memberikan izin pada akun untuk menggunakan PutEvents tindakan, cara memberikan izin pada organisasi, dan cara memberikan izin pada akun untuk mengelola aturan dalam akun itu sendiri. Anda dapat menyesuaikan templat untuk akun tertentu, kemudian menghapus bagian lain dari templat. Contoh kebijakan lainnya disertakan dalam topik ini.

Jika Anda mencoba untuk memperbarui izin bus namun terdapat kesalahan pada kebijakan, pesan yang muncul akan menunjukkan masalahnya.


  ### Choose which sections to include in the policy to match your use case. ###
  ### Be sure to remove all lines that start with ###, including the ### at the end of the line. ###

  ### The policy must include the following: ###

  {
    "Version": "2012-10-17",
    "Statement": [

      ### To grant permissions for an account to use the PutEvents action, include the following, otherwise delete this section: ###

      {

        "Sid": "allow_account_to_put_events",
        "Effect": "Allow",
        "Principal": {
          "AWS": ""
        },
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
      },

      ### Include the following section to grant permissions to all members of your AWS Organizations to use the PutEvents action ###

      {
        "Sid": "allow_all_accounts_from_organization_to_put_events",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default",
        "Condition": {
          "StringEquals": {
            "aws:PrincipalOrgID": "o-yourOrgID"
          }
        }
      },

      ### Include the following section to grant permissions to the account to manage the rules created in the account ###

      {
        "Sid": "allow_account_to_manage_rules_they_created",
        "Effect": "Allow",
        "Principal": {
          "AWS": ""
        },
        "Action": [
          "events:PutRule",
          "events:PutTargets",
          "events:DeleteRule",
          "events:RemoveTargets",
          "events:DisableRule",
          "events:EnableRule",
          "events:TagResource",
          "events:UntagResource",
          "events:DescribeRule",
          "events:ListTargetsByRule",
          "events:ListTagsForResource"],
        "Resource": "arn:aws:events:us-east-1:123456789012:rule/default",
        "Condition": {
          "StringEqualsIfExists": {
            "events:creatorAccount": ""
          }
        }
    }]
  }

Contoh kebijakan: Kirim peristiwa ke bus default di akun yang berbeda

Contoh kebijakan berikut ini memberikan izin akun 111122223333 untuk mempublikasikan peristiwa ke bus peristiwa default di akun 1234589012.

{
   "Version": "2012-10-17",
   "Statement": [
       {
        "Sid": "sid1",
        "Effect": "Allow",
        "Principal": {"AWS":"arn:aws:iam::111112222333:root"},
        "Action": "events:PutEvents",
        "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default"
        }
    ]
  }

Contoh kebijakan: Kirim peristiwa ke bus kustomisasi di akun yang berbeda

Contoh kebijakan berikut memberikan izin pada akun 111122223333 untuk mempublikasikan peristiwa ke

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
1 akun 123456789012, tetapi hanya untuk acara dengan nilai sumber yang ditetapkan ke
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
2 dan
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
3 diatur ke
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
4.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}

Contoh kebijakan: Mengirim acara ke bus acara di akun yang sama

Contoh kebijakan berikut yang dilampirkan bus peristiwa bernama

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
5memungkinkan bus acara untuk menerima acara dari akun dan Wilayah yang sama.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Resource": [
        "arn:aws:events:us-east-1:123456789:event-bus/CustomBus1"
      ]
    }
  ]
}

Contoh kebijakan: Kirim peristiwa ke akun yang sama dan batasi pembaruan

Contoh kebijakan berikut ini memberikan izin pada akun 123456789012 untuk membuat, menghapus, memperbarui, menonaktifkan dan mengaktifkan aturan, dan menambahkan atau menghapus target. Kebijakan tersebut membatasi aturan-aturan yang sesuai terhadap peristiwa dengan sumber

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
2, dan menggunakan
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
7 untuk memastikan bahwa hanya akun 123456789012 yang dapat memodifikasi aturan dan target ini setelah dibuat.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "InvoiceProcessingRuleCreation",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:root"
      },
      "Action": [
        "events:PutRule",
        "events:DeleteRule",
        "events:DescribeRule",
        "events:DisableRule",
        "events:EnableRule",
        "events:PutTargets",
        "events:RemoveTargets"
      ],
      "Resource": "arn:aws:events:us-east-1:123456789012:rule/central-event-bus/*",
      "Condition": {
        "StringEqualsIfExists": {
          "events:creatorAccount": "${aws:PrincipalAccount}",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}

Contoh kebijakan: Kirim peristiwa hanya dari aturan khusus ke bus di Wilayah yang berbeda

Contoh kebijakan berikut mengizinkan akun 111122223333 untuk mengirim peristiwa yang sesuai dengan aturan bernama

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
8 di Middle East (Bahrain) (Middle East (Bahrain)) dan US West (Oregon) untuk bus peristiwa bernama
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
9 di US East (N. Virginia) pada akun 123456789012. Contoh kebijakan ditambahkan ke bus peristiwa bernama
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
9 pada akun 123456789012. Kebijakan ini memperbolehkan peristiwa hanya jika sesuai dengan aturan yang ditentukan untuk bus peristiwa di akun 111122223333. Pernyataan
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Resource": [
        "arn:aws:events:us-east-1:123456789:event-bus/CustomBus1"
      ]
    }
  ]
}
1 membatasi peristiwa hanya untuk peristiwa yang sesuai dengan aturan yang mengandung aturan khusus ARN.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "allow_specific_rules_as_cross_region_source",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:events:us-west-2:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount",
            "arn:aws:events:me-south-1:111112222333:rule/CrossRegionBus/SendToUSE1AnotherAccount"
          ]
        }
      }
    }
  ]
}

Contoh kebijakan: Kirim peristiwa hanya dari Wilayah tertentu ke Wilayah yang berbeda

Contoh kebijakan berikut mengizinkan akun 111122223333 untuk mengirim semua peristiwa yang dihasilkan di Middle East (Bahrain) (Middle East (Bahrain)) dan US West (Oregon) untuk bus peristiwa bernama

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
9 pada akun 123456789012 di US East (N. Virginia). Akun 111122223333 tidak memiliki izin untuk mengirim peristiwa yang dihasilkan di Wilayah lain.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "allow_cross_region_events_from_us-west-2_and_me-south-1",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Action": "events:PutEvents",
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/CrossRegionBus",
      "Condition": {
        "ArnEquals": {
          "aws:SourceArn": [
            "arn:aws:events:us-west-2:*:*",
            "arn:aws:events:me-south-1:*:*"
          ]
        }
      }
    }
  ]
}

Contoh kebijakan: Tolak pengiriman peristiwa dari Daerah tertentu

Contoh kebijakan berikut melekat pada bus peristiwa bernama

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "WebStoreCrossAccountPublish",
      "Effect": "Allow",
      "Action": [
        "events:PutEvents"
      ],
      "Principal": {
        "AWS": "arn:aws:iam::111112222333:root"
      },
      "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/central-event-bus",
      "Condition": {
        "StringEquals": {
          "events:detail-type": "newOrderCreated",
          "events:source": "com.exampleCorp.webStore"
        }
      }
    }
  ]
}
9 di akun 123456789012 yang mengizinkan bus peristiwa untuk menerima peristiwa dari akun 111122223333, namun tidak peristiwa yang dihasilkan di US West (Oregon).