Amazon EventBridge スケジューラのセットアップ
EventBridge スケジューラを使用するには、事前に以下のステップを完了する必要があります。
AWS へのサインアップ
AWS アカウント をお持ちでない場合は、以下の手順を実行してアカウントを作成してください。
AWS アカウントにサインアップするには
https://portal.aws.amazon.com/billing/signup
を開きます。 オンラインの手順に従います。
サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。
AWS アカウント にサインアップすると、AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべての AWS のサービスとリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、ルートユーザーアクセスが必要なタスクの実行にはルートユーザーのみを使用するようにしてください。
IAM ユーザーを作成する
管理者ユーザーを作成するには、以下のいずれかのオプションを選択します。
| 管理者を管理する方法を 1 つ選択します | 目的 | 方法 | 以下の操作も可能 |
|---|---|---|---|
| IAM Identity Center 内 (推奨) |
短期の認証情報を使用して AWS にアクセスします。 これはセキュリティのベストプラクティスと一致しています。ベストプラクティスの詳細については、「IAM ユーザーガイド」の「人間のユーザーが一時的な認証情報を使用して AWS にアクセスする場合に ID プロバイダーとのフェデレーションを使用することを必須とする」を参照してください。 |
AWS IAM Identity Center ユーザーガイドの「開始方法」の手順に従います。 | AWS Command Line Interface ユーザーガイドの「AWS IAM Identity Center を使用するための AWS CLI の設定」に従って、プログラムによるアクセスを設定します。 |
| IAM 内 (非推奨) |
長期認証情報を使用して AWS にアクセスする。 | IAM ユーザーガイドの「緊急アクセス用の IAM ユーザーを作成する」の手順に従います。 | IAM ユーザーガイドの「IAM ユーザーのアクセスキーを管理する」の手順に従って、プログラムによるアクセスを設定します。 |
マネージドポリシーを使用する
前のステップでは、AWS リソースにアクセスするための認証情報を使用して IAM ユーザーを設定しました。ほとんどの場合、EventBridge スケジューラを安全に使用するために、EventBridge スケジューラを使用するために必要な権限のみを持つユーザー、グループ、またはロールを個別に作成することをお勧めします。EventBridge スケジューラは、一般的なユースケースに対して以下のマネージドポリシーをサポートしています。
-
AmazonEventBridgeSchedulerFullAccess - コンソールと API を使用した EventBridge スケジューラへのフルアクセスを付与します。
-
AmazonEventBridgeSchedulerReadOnlyAccess – EventBridge スケジューラへの読み取り専用アクセスを許可します。
これらのマネージドポリシーは、前のステップで AdministratorAccess ポリシーをアタッチしたのと同じ方法で IAM プリンシパルにアタッチできます。アイデンティティベースの IAM ポリシーを使用した EventBridge スケジューラへのアクセス管理の詳細については、「EventBridge スケジューラでのアイデンティティベースのポリシーの使用」を参照してください。
実行ロールを設定する
実行ロールとは、ユーザーに代わって他の AWS のサービス とやり取りするために EventBridge スケジューラが引き受ける IAM ロールです。このロールにアクセス権限ポリシーをアタッチして、EventBridge スケジューラにターゲットを呼び出すアクセス権を付与します。
コンソールを使用して新しいスケジュールを作成するときに、新しい実行ロールを作成することもできます。コンソールを使用する場合、EventBridge スケジューラは、選択したターゲットに基づく権限を持つロールをユーザーに代わって作成します。EventBridge スケジューラがロールを作成すると、ロールの信頼ポリシーには、ユーザーに代わってロールを引き受けることができるプリンシパルを制限する条件キーが含まれます。これにより、混乱した代理のセキュリティ問題を防ぐことができます。
次のステップでは、新しい実行ロールを作成する方法と、EventBridge スケジューラにターゲットを呼び出すアクセス許可を付与する方法について説明します。このトピックでは、一般的なテンプレート化されたターゲットの権限について説明します。他のターゲットに権限を追加する方法については、「EventBridge スケジューラでのテンプレート化されたターゲットの使用」を参照してください。
AWS CLI を使用して実行ロールを作成する方法
-
次のロール引き受け JSON ポリシーをコピーし、
Scheduler-Execution-Role.jsonという名前でローカルに保存します。この信頼ポリシーにより、EventBridge スケジューラはユーザーに代わってロールを引き受けることを許可されます。重要
実稼働環境で実行ロールを設定するには、混乱した代理の問題を防ぐための追加の保護手段を導入することをお勧めします。詳細およびポリシーの例については、「EventBridge スケジューラでの混乱した代理の防止」を参照してください。
-
AWS Command Line Interface (AWS CLI) から、次のコマンドを入力して、新しいロールを作成します。
をこのロールに割り当てる名前に置き換えます。SchedulerExecutionRole$aws iam create-role --role-nameSchedulerExecutionRole--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" } ] } } }
-
EventBridge スケジューラがターゲットを呼び出すことを許可する新しいポリシーを作成するには、次の共通ターゲットのいずれかを選択します。JSON アクセス権限ポリシーをコピーし、
.jsonファイルとしてローカルに保存します。 -
次のコマンドを実行して、新しいアクセス許可ポリシーを作成します。
をこのポリシーに割り当てる名前に置き換えます。PolicyName$aws iam create-policy --policy-namePolicyName--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" } }
-
次のコマンドを実行して、ポリシーを実行ロールにアタッチします。
を、前のステップで作成したポリシーの ARN に置き換えます。your-policy-arnを実行ロールの名前に置き換えます。SchedulerExecutionRole$aws iam attach-role-policy --policy-arnyour-policy-arn--role-nameSchedulerExecutionRoleattach-role-policyオペレーションはコマンドラインにレスポンスを返しません。
ターゲットをセットアップする
EventBridge スケジューラのスケジュールを作成する前に、スケジュールが呼び出すターゲットを少なくとも 1 つ用意する必要があります。既存の AWS リソースを使用するか、新しいターゲットを作成できます。次のステップは、CloudFormation を使用して新しい標準 Amazon SQS キューを作成する方法を示しています。
新しい Amazon SQS キューを作成する方法
-
次の JSON 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" ] } } } } -
AWS CLI から、以下のコマンドを実行して、
Scheduler-Target-SQS.jsonテンプレートから CloudFormation スタックを作成します。$aws cloudformation create-stack --stack-nameScheduler-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" } -
次のコマンドを実行して、CloudFormation スタックの概要情報を表示します。この情報には、スタックの状態とテンプレートで指定されている出力が含まれます。
$aws cloudformation describe-stacks --stack-nameScheduler-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 スケジューラのスケジュールを作成し、ターゲットを呼び出します。