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

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

Amazon EventBridge Scheduler のセットアップ

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

にサインアップする AWS

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

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

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

    サインアップ手順の一環として、通話呼び出しを受け取り、電話キーパッドで検証コードを入力するように求められます。

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

IAM ユーザーを作成する

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

管理者を管理する方法を 1 つ選択します 目的 方法 以下の操作も可能
IAM Identity Center 内

(推奨)

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

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

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

(非推奨)

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

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

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

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

実行ロールを設定する

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

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

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

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

    { "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アクションを呼び出すことができます。

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

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

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

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

    { "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. 次のコマンドを実行して、ポリシーを実行ロールにアタッチします。を、前のステップで作成したポリシーARNの your-policy-arnに置き換えます。SchedulerExecutionRole を実行ロールの名前に置き換えます。

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

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

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

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

新しい Amazon SQSキューを作成するには
  1. 次のJSON AWS CloudFormation テンプレートをコピーし、 としてローカルに保存しますSchedulerTargetSQS.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テンプレートから AWS 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. 次のコマンドを実行して、 AWS 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 ケジューラスケジューラを作成し、ターゲットを呼び出します。