翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EventBridge スケジューラのセットアップ
EventBridge スケジューラを使用するには、事前に以下のステップを完了する必要があります。
AWS へのサインアップ
AWS アカウントをお持ちでない場合は、以下の手順を実行してアカウントを作成してください。
AWS アカウント にサインアップするには
オンラインの手順に従います。
サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて検証コードを入力するように求められます。
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 スケジューラを安全に使用するために、EventBridge スケジューラを使用するために必要な権限のみを持つユーザー、グループ、またはロールを個別に作成することをお勧めします。EventBridge スケジューラは、一般的なユースケースに対して以下のマネージドポリシーをサポートしています。
-
AmazonEventBridgeSchedulerFullAccess - コンソールと API を使用した EventBridge スケジューラへのフルアクセスを付与します。
-
AmazonEventBridgeSchedulerReadOnlyAccess - EventBridge スケジューラへの読み取り専用アクセス許可を付与します。
これらのマネージドポリシーは、前のステップで AdministratorAccess
ポリシーをアタッチしたのと同じ方法で IAM プリンシパルにアタッチできます。アイデンティティベースの IAM ポリシーを使用した EventBridge スケジューラへのアクセス管理の詳細については、「アイデンティティベースのポリシーを使用する」を参照してください。
実行ロールを設定する
実行ロールとは、ユーザーに代わって他の AWS のサービス とやり取りするために EventBridge スケジューラが引き受ける IAM ロールです。このロールにアクセス権限ポリシーをアタッチして、EventBridge スケジューラにターゲットを呼び出すアクセス権を付与します。
コンソールを使用して新しいスケジュールを作成するときに、新しい実行ロールを作成することもできます。コンソールを使用する場合、EventBridge スケジューラは、選択したターゲットに基づく権限を持つロールをユーザーに代わって作成します。EventBridge スケジューラがロールを作成すると、ロールの信頼ポリシーには、ユーザーに代わってロールを引き受けることができるプリンシパルを制限する条件キーが含まれます。これにより、混乱した代理のセキュリティ問題を防ぐことができます。
次のステップでは、新しい実行ロールを作成する方法と、EventBridge スケジューラにターゲットを呼び出すアクセス許可を付与する方法について説明します。このトピックでは、一般的なテンプレート化されたターゲットの権限について説明します。他のターゲットに権限を追加する方法については、「テンプレート化されたターゲットの使用」を参照してください。
AWS CLI を使用して実行ロールを作成する方法
-
次のロール引き受け JSON ポリシーをコピーし、
Scheduler-Execution-Role.json
という名前でローカルに保存します。この信頼ポリシーにより、EventBridge スケジューラはユーザーに代わってロールを引き受けることを許可されます。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "scheduler.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
重要
実稼働環境で実行ロールを設定する場合は、混乱した代理の問題を防ぐための追加の保護手段を導入することをお勧めします。詳細およびポリシーの例については、「混乱した代理の防止」を参照してください。
-
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" } ] } } }
-
EventBridge スケジューラがターゲットを呼び出すことを許可する新しいポリシーを作成するには、次の共通ターゲットのいずれかを選択します。JSON アクセス権限ポリシーをコピーし、
.json
ファイルとしてローカルに保存します。 -
次のコマンドを実行して、新しいアクセス許可ポリシーを作成します。
をこのポリシーに割り当てる名前に置き換えます。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" } }
-
次のコマンドを実行して、ポリシーを実行ロールにアタッチします。
を、前のステップで作成したポリシーの ARN に置き換えます。your-policy-arn
を実行ロールの名前に置き換えます。SchedulerExecutionRole
$
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-nameSchedulerExecutionRole
attach-role-policy
オペレーションはコマンドラインにレスポンスを返しません。
ターゲットをセットアップする
EventBridge スケジューラのスケジュールを作成する前に、スケジュールが呼び出すターゲットを少なくとも 1 つ用意する必要があります。既存の AWS リソースを使用するか、新しいターゲットを作成できます。次のステップは、AWS CloudFormation を使用して新しい標準 Amazon SQS キューを作成する方法を示しています。
新しい Amazon SQS キューを作成する方法
-
次の 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" ] } } } } -
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" }
-
次のコマンドを実行して、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 スケジューラのスケジュールを作成し、ターゲットを呼び出します。