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

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

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

EventBridge Scheduler を使用する前に、以下のステップを完了する必要があります。

AWS へのサインアップ

AWS アカウントをお持ちでない場合は、以下の手順を実行してアカウントを作成してください。

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

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

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

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

IAM ユーザーを作成する

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

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

(推奨)

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

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

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

(非推奨)

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

管理ポリシーを使用してください。

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

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

実行ロールを設定する

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

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

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

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

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

    実稼働環境で実行ロールを設定する場合は、混乱を招くような副次的な問題を防ぐための追加の保護手段を導入することをお勧めします。詳細とポリシーの例については、を参照してください混乱した代理の防止

  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 Scheduler がターゲットを呼び出すことを許可する新しいポリシーを作成するには、以下の共通ターゲットのいずれかを選択します。JSON アクセス権限ポリシーをコピーし、ファイルとしてローカルに保存します。.json

    Amazon SQS – SendMessage

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

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

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

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

    以下により、 EventBridge Scheduler はアカウント内のすべての 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. 以下のコマンドを実行して、ポリシーを実行ロールにアタッチします。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 キューを作成する方法を示しています。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、以下のコマンドを実行して、AWS CloudFormationScheduler-Target-SQS.jsonテンプレートからスタックを作成します。

    $ 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 Scheduler のターゲットとして設定します。

次のステップ

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