Amazon EventBridge スケジューラのセットアップ - EventBridge スケジューラ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EventBridge スケジューラのセットアップ

EventBridge スケジューラを使用するには、事前に以下のステップを完了する必要があります。

にサインアップする AWS

がない場合は AWS アカウント、次の手順を実行して作成します。

にサインアップするには AWS アカウント
  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

    にサインアップすると AWS アカウント、 AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、ルートユーザーアクセスが必要なタスクの実行にはルートユーザーのみを使用するようにしてください。

IAM ユーザーの作成

管理者ユーザーを作成するには、以下のいずれかのオプションを選択します。

管理者を管理する方法を 1 つ選択します 目的 方法 以下の操作も可能
IAM アイデンティティセンター内

(推奨)

短期の認証情報を使用して AWSにアクセスします。

これはセキュリティのベストプラクティスと一致しています。ベストプラクティスの詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。

AWS IAM Identity Center ユーザーガイドの「開始方法」の手順に従います。 AWS Command Line Interface ユーザーガイドを使用する AWS CLI ように を設定 AWS IAM Identity Centerして、プログラムによるアクセスを設定します。
IAM 内

(非推奨)

長期認証情報を使用して AWSにアクセスします。 IAM ユーザーガイドの「緊急アクセス用の IAM ユーザーを作成する」の手順に従います。 IAM ユーザーガイドの「IAM ユーザーのアクセスキーを管理する」の手順に従って、プログラムによるアクセスを設定します。

マネージドポリシーを使用する

前のステップでは、 AWS リソースにアクセスするための認証情報を使用して IAM ユーザーを設定します。ほとんどの場合、EventBridge スケジューラを安全に使用するために、EventBridge スケジューラを使用するために必要な権限のみを持つユーザー、グループ、またはロールを個別に作成することをお勧めします。EventBridge スケジューラは、一般的なユースケースに対して以下のマネージドポリシーをサポートしています。

  • AmazonEventBridgeSchedulerFullAccess - コンソールと API を使用した EventBridge スケジューラへのフルアクセスを付与します。

  • AmazonEventBridgeSchedulerReadOnlyAccess – EventBridge スケジューラへの読み取り専用アクセスを許可します。

これらのマネージドポリシーは、前のステップで AdministratorAccess ポリシーをアタッチしたのと同じ方法で IAM プリンシパルにアタッチできます。アイデンティティベースの IAM ポリシーを使用した EventBridge スケジューラへのアクセス管理の詳細については、「EventBridge スケジューラでのアイデンティティベースのポリシーの使用」を参照してください。

実行ロールを設定する

実行ロールは、EventBridge スケジューラが AWS のサービス ユーザーに代わって他の とやり取りするために引き受ける IAM ロールです。このロールにアクセス権限ポリシーをアタッチして、EventBridge スケジューラにターゲットを呼び出すアクセス権を付与します。

コンソールを使用して新しいスケジュールを作成するときに、新しい実行ロールを作成することもできます。コンソールを使用する場合、EventBridge スケジューラは、選択したターゲットに基づく権限を持つロールをユーザーに代わって作成します。EventBridge スケジューラがロールを作成すると、ロールの信頼ポリシーには、ユーザーに代わってロールを引き受けることができるプリンシパルを制限する条件キーが含まれます。これにより、混乱した代理のセキュリティ問題を防ぐことができます。

次のステップでは、新しい実行ロールを作成する方法と、EventBridge スケジューラにターゲットを呼び出すアクセス許可を付与する方法について説明します。このトピックでは、一般的なテンプレート化されたターゲットの権限について説明します。他のターゲットに権限を追加する方法については、「EventBridge スケジューラでのテンプレート化されたターゲットの使用」を参照してください。

を使用して実行ロールを作成するには AWS CLI
  1. 次のロール引き受け JSON ポリシーをコピーし、Scheduler-Execution-Role.json という名前でローカルに保存します。この信頼ポリシーにより、EventBridge スケジューラはユーザーに代わってロールを引き受けることを許可されます。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    重要

    実稼働環境で実行ロールを設定するには、混乱した代理の問題を防ぐための追加の保護手段を導入することをお勧めします。詳細およびポリシーの例については、「EventBridge スケジューラでの混乱した代理の防止」を参照してください。

  2. AWS Command Line Interface (AWS CLI) から、次のコマンドを入力して新しいロールを作成します。SchedulerExecutionRole をこのロールに割り当てる名前に置き換えます。

    $ aws iam create-role --role-name SchedulerExecutionRole --assume-role-policy-document file://Scheduler-Execution-Role.json

    成功すると、次の出力が表示されます。

    {
        "Role": {
            "Path": "/",
            "RoleName": "Scheduler-Execution-Role",
            "RoleId": "BR1L2DZK3K4CTL5ZF9EIL",
            "Arn": "arn:aws:iam::123456789012:role/SchedulerExecutionRole",
            "CreateDate": "2022-03-10T18:45:01+00:00",
            "AssumeRolePolicyDocument": {
                "Version": "2012-10-17",		 	 	 
                "Statement": [
                    {
                        "Effect": "Allow",
                        "Principal": {
                            "Service": "scheduler.amazonaws.com"
                        },
                        "Action": "sts:AssumeRole"
                    }
                ]
            }
        }
    }
  3. EventBridge スケジューラがターゲットを呼び出すことを許可する新しいポリシーを作成するには、次の共通ターゲットのいずれかを選択します。JSON アクセス権限ポリシーをコピーし、.json ファイルとしてローカルに保存します。

    Amazon SQS – SendMessage

    以下により、EventBridge スケジューラはアカウントのすべての Amazon SQS キューに対して sqs:SendMessage アクションを呼び出すことができます。

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" } ] }
    Amazon SNS – Publish

    以下により、EventBridge スケジューラはアカウント内のすべての Amazon SNS トピックに対して sns:Publish アクションを呼び出すことができます。

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "*" } ] }
    Lambda – Invoke

    以下により、EventBridge スケジューラはアカウント内のすべての Lambda 関数に対して lambda:InvokeFunction アクションを呼び出すことができます。

    JSON
    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Effect": "Allow", "Resource": "*" } ] }
  4. 次のコマンドを実行して、新しいアクセス許可ポリシーを作成します。PolicyName をこのポリシーに割り当てる名前に置き換えます。

    $ aws iam create-policy --policy-name PolicyName --policy-document file://PermissionPolicy.json

    成功すると、次の出力が表示されます。ポリシーの ARN を書き留めておきます。この ARN を使用して、次のステップで、このポリシーを実行ロールにアタッチします。

    {
        "Policy": {
            "PolicyName": "PolicyName",
            "CreateDate": "2022-03-015T19:31:18.620Z",
            "AttachmentCount": 0,
            "IsAttachable": true,
            "PolicyId": "ZXR6A36LTYANPAI7NJ5UV",
            "DefaultVersionId": "v1",
            "Path": "/",
            "Arn": "arn:aws:iam::123456789012:policy/PolicyName",
            "UpdateDate": "2022-03-015T19:31:18.620Z"
        }
    }
    
  5. 次のコマンドを実行して、ポリシーを実行ロールにアタッチします。your-policy-arn を、前のステップで作成したポリシーの ARN に置き換えます。SchedulerExecutionRole を実行ロールの名前に置き換えます。

    $ aws iam attach-role-policy --policy-arn your-policy-arn --role-name SchedulerExecutionRole

    attach-role-policy オペレーションはコマンドラインにレスポンスを返しません。

ターゲットをセットアップする

EventBridge スケジューラのスケジュールを作成する前に、スケジュールが呼び出すターゲットを少なくとも 1 つ用意する必要があります。既存のリソースを使用するか、新しい AWS リソースを作成できます。次の手順は、 を使用して新しい標準 Amazon SQS キューを作成する方法を示しています CloudFormation。

新しい Amazon SQS キューを作成する方法
  1. 次の JSON CloudFormation テンプレートをコピーし、 としてローカルに保存しますScheduler-Target-SQS.json

    { "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "MyQueue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": "MyQueue" } } }, "Outputs": { "QueueName": { "Description": "The name of the queue", "Value": { "Fn::GetAtt": [ "MyQueue", "QueueName" ] } }, "QueueURL": { "Description": "The URL of the queue", "Value": { "Ref": "MyQueue" } }, "QueueARN": { "Description": "The ARN of the queue", "Value": { "Fn::GetAtt": [ "MyQueue", "Arn" ] } } } }
  2. から次のコマンドを実行して AWS CLI、Scheduler-Target-SQS.jsonテンプレートから CloudFormation スタックを作成します。

    $ aws cloudformation create-stack --stack-name Scheduler-Target-SQS --template-body file://Scheduler-Target-SQS.json

    成功すると、次の出力が表示されます。

    {
        "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/Scheduler-Target-SQS/1d2af345-a121-12eb-abc1-012e34567890"
    }
  3. 次のコマンドを実行して、 CloudFormation スタックの概要情報を表示します。この情報には、スタックの状態とテンプレートで指定されている出力が含まれます。

    $ aws cloudformation describe-stacks --stack-name Scheduler-Target-SQS

    成功すると、コマンドは Amazon SQS キューを作成し、次の出力を返します。

    {
        "Stacks": [
            {
                "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/Scheduler-Target-SQS/1d2af345-a121-12eb-abc1-012e34567890",
                "StackName": "Scheduler-Target-SQS",
                "CreationTime": "2022-03-17T16:21:29.442000+00:00",
                "RollbackConfiguration": {},
                "StackStatus": "CREATE_COMPLETE",
                "DisableRollback": false,
                "NotificationARNs": [],
                "Outputs": [
                    {
                        "OutputKey": "QueueName",
                        "OutputValue": "MyQueue",
                        "Description": "The name of the queue"
                    },
                    {
                        "OutputKey": "QueueARN",
                        "OutputValue": "arn:aws:sqs:us-west-2:123456789012:MyQueue",
                        "Description": "The ARN of the queue"
                    },
                    {
                        "OutputKey": "QueueURL",
                        "OutputValue": "https://sqs.us-west-2.amazonaws.com/123456789012/MyQueue",
                        "Description": "The URL of the queue"
                    }
                ],
                "Tags": [],
                "EnableTerminationProtection": false,
                "DriftInformation": {
                    "StackDriftStatus": "NOT_CHECKED"
                }
            }
        ]
    }

    このガイドの後半では、QueueARN の値を使用してキューを EventBridge スケジューラのターゲットとして設定します。

次のステップ

セットアップステップが完了したら、入門ガイドを使用して最初の EventBridge スケジューラのスケジュールを作成し、ターゲットを呼び出します。