EventBridge スケジューラでのアイデンティティベースのポリシーの使用 - EventBridge スケジューラ

EventBridge スケジューラでのアイデンティティベースのポリシーの使用

デフォルトでは、ユーザーおよびロールには、EventBridge スケジューラのリソースを作成または変更するアクセス許可がありません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。

これらのサンプルの JSON ポリシードキュメントを使用して、IAM アイデンティティベースのポリシーを作成する方法については、「IAM ユーザーガイド」の「IAM ポリシーを作成する (コンソール)」を参照してください。

EventBridge スケジューラが定義するアクションとリソースタイプ (リソースタイプごとの ARN の形式を含む) の詳細については、「サービス認可リファレンス」の「Amazon EventBridge スケジューラのアクション、リソース、および条件キー」を参照してください。

ポリシーに関するベストプラクティス

アイデンティティベースのポリシーは、ユーザーのアカウントで誰かが EventBridge スケジューラのリソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションでは、AWS アカウント に費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

  • AWS マネージドポリシーを使用して開始し、最小特権の許可に移行する – ユーザーとワークロードへの許可の付与を開始するには、多くの一般的なユースケースのために許可を付与する AWS マネージドポリシーを使用します。これらは AWS アカウントで使用できます。ユースケースに固有の AWS カスタマー管理ポリシーを定義して、アクセス許可を絞り込むことをお勧めします。詳細については、「IAM ユーザーガイド」の「AWS マネージドポリシー」または「ジョブ機能の AWS マネージドポリシー」を参照してください。

  • 最小特権を適用する – IAM ポリシーで許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、「IAM ユーザーガイド」の「IAM でのポリシーとアクセス許可」を参照してください。

  • IAM ポリシーで条件を使用してアクセスをさらに制限する - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。また、CloudFormation などの特定の AWS のサービス を介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、「IAM ユーザーガイド」の「IAM JSON ポリシー要素:条件」を参照してください。

  • IAM Access Analyzer を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する - IAM Access Analyzer は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、「IAM ユーザーガイド」の「IAM Access Analyzer でポリシーを検証する」を参照してください。

  • 多要素認証 (MFA) を要求する – AWS アカウントで IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、「IAM ユーザーガイド」の「MFA を使用した安全な API アクセス」を参照してください。

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

EventBridge スケジューラのアクセス許可

IAM プリンシパル (ユーザー、グループ、またはロール) が EventBridge スケジューラでスケジュールを作成し、コンソールまたは API から EventBridge スケジューラのリソースにアクセスするには、プリンシパルのアクセス権限ポリシーに一連の権限を追加する必要があります。これらの権限は、プリンシパルの職務に応じて設定できます。例えば、EventBridge スケジューラのコンソールのみを使用して既存のスケジュールのリストを表示するユーザーまたはロールには、CreateSchedule API オペレーションを呼び出すために必要な権限は必要ありません。アイデンティティベースの権限を調整して、最も権限の低いアクセス権のみを提供することをおすすめします。

次のリストは、EventBridge スケジューラのリソースと、それに対応してサポートされているアクションを示しています。

  • スケジュール

    • scheduler:ListSchedules

    • scheduler:GetSchedule

    • scheduler:CreateSchedule

    • scheduler:UpdateSchedule

    • scheduler:DeleteSchedule

  • スケジュールグループ

    • scheduler:ListScheduleGroups

    • scheduler:GetScheduleGroup

    • scheduler:CreateScheduleGroup

    • scheduler:DeleteScheduleGroup

    • scheduler:ListTagsForResource

    • scheduler:TagResource

    • scheduler:UntagResource

EventBridge スケジューラの権限を使用して、EventBridge スケジューラで使用する独自のカスタマー管理ポリシーを作成できます。また、以下のセクションで説明する AWS マネージドポリシーを使用して、独自のポリシーを管理しなくても、一般的なユースケースに必要な権限を付与できます。

EventBridge スケジューラの AWS マネージドポリシー

AWS は、多くの一般的ユースケースに対処するために、AWS が作成および管理するスタンドアロンの IAM ポリシーを用意しています。管理ポリシー、つまり事前定義ポリシーは、一般的ユースケースに必要なアクセス許可を付与するため、どの許可が必要なのかをユーザーが調査する必要はありません。詳細については「IAM ユーザーガイド」の「AWS マネージドポリシー」を参照してください。アカウントのユーザーにアタッチできる以下の AWS マネージドポリシーは、EventBridge スケジューラに固有のものです。

  • AmazonEventBridgeSchedulerFullAccess

    スケジュールおよびスケジュールグループのすべての EventBridge スケジューラアクションを使用する権限を付与します。

    このポリシーの許可を確認するには、「AWS マネージドポリシーリファレンス」の「AmazonEventBridgeSchedulerFullAccess」を参照してください。

  • AmazonEventBridgeSchedulerReadOnlyAccess

    スケジュールとスケジュールグループに関する詳細を表示する読み取り専用の権限を付与します。

    このポリシーのアクセス許可を確認するには、「AWS マネージドポリシーリファレンス」の「AmazonEventBridgeSchedulerReadOnlyAccess」を参照してください。

EventBridge スケジューラのカスタマー管理ポリシー

以下の例を使用して、EventBridge スケジューラの独自のカスタマー管理ポリシーを作成します。カスタマー管理ポリシーを使用すると、プリンシパルの職務に応じて、チーム内のアプリケーションとユーザーに必要なアクションとリソースのみにアクセス許可を付与できます。

例:CreateSchedule

新しいスケジュールを作成するときに、EventBridge スケジューラ上のデータを暗号化するのに AWS 所有のキー を使用するか、またはカスタマーマネージドキーを使用するかを選択します。

次のポリシーでは、プリンシパルはスケジュールを作成し、AWS 所有のキー を使用して暗号化を適用できます。AWS 所有のキー を使用すると、AWS が AWS Key Management Service (AWS KMS) 上のリソースを管理するため、AWS KMS とやり取りするための追加の権限は必要ありません。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "scheduler:CreateSchedule" ], "Effect": "Allow", "Resource": [ "arn:aws:scheduler:us-west-2:123456789012:schedule/my-group/my-schedule-name" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/*", "Condition": { "StringLike": { "iam:PassedToService": "scheduler.amazonaws.com" } } } ] }

以下のポリシーを使用して、プリンシパルがスケジュールを作成し、AWS KMS カスタマーマネージドキーを使用して暗号化できるようにします。カスタマーマネージドキーを使用するには、プリンシパルにはアカウントの AWS KMS リソースへのアクセス許可が必要です。このポリシーは、EventBridge スケジューラ上のデータを暗号化するために使用される単一の指定された KMS キーへのアクセスを許可します。または、ワイルドカード (*) 文字を使用して、アカウント内のすべてのキー、または特定の名前パターンに一致するサブセットへのアクセスを許可することもできます。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "scheduler:CreateSchedule" ], "Effect": "Allow", "Resource": [ "arn:aws:scheduler:us-east-1:123456789012:schedule/my-group/my-schedule-name" ] }, { "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Effect": "Allow", "Resource": [ "arn:aws:kms:us-west-2:123456789012:key/my-key-id" ], "Condition": { "StringLike": { "kms:ViaService": "scheduler.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:scheduler:schedule:arn": "arn:aws:scheduler:us-west-2:123456789012:schedule/my-group/my-schedule-name" } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/*", "Condition": { "StringLike": { "iam:PassedToService": "scheduler.amazonaws.com" } } } ] }

例:GetSchedule

以下のポリシーを使用して、プリンシパルがスケジュールに関する情報を取得できるようにします。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "scheduler:GetSchedule" ], "Effect": "Allow", "Resource": [ "arn:aws:scheduler:us-west-2:123456789012:schedule/my-group/my-schedule-name" ] } ] }

例:UpdateSchedule

以下のポリシーを使用して、プリンシパルが scheduler:UpdateSchedule アクションを呼び出してスケジュールを更新できるようにします。CreateSchedule と同様に、このポリシーは、スケジュールで暗号化に AWS KMS AWS 所有のキー を使用するか、またはカスタマーマネージドキーを使用するかによって異なります。AWS 所有のキー を使用して設定されたスケジュールの場合は、以下のポリシーを使用します。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "scheduler:UpdateSchedule" ], "Effect": "Allow", "Resource": [ "arn:aws:scheduler:us-west-2:123456789012:schedule/my-group/my-schedule-name" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/*", "Condition": { "StringLike": { "iam:PassedToService": "scheduler.amazonaws.com" } } } ] }

カスタマーマネージドキーを使用して設定されたスケジュールの場合は、以下のポリシーを使用します。このポリシーには、プリンシパルがアカウント内の AWS KMS リソースにアクセスできるようにする追加の権限が含まれています。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "scheduler:UpdateSchedule" ], "Effect": "Allow", "Resource": [ "arn:aws:scheduler:us-east-1:123456789012:schedule/my-group/my-schedule-name" ] }, { "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Effect": "Allow", "Resource": [ "arn:aws:kms:us-west-2:123456789012:key/my-key-id" ], "Condition": { "StringLike": { "kms:ViaService": "scheduler.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:scheduler:schedule:arn": "arn:aws:scheduler:us-east-1:123456789012:schedule/my-group/my-schedule-name" } } }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/*", "Condition": { "StringLike": { "iam:PassedToService": "scheduler.amazonaws.com" } } } ] }

例:DeleteScheduleGroup

以下のポリシーを使用して、プリンシパルがスケジュールグループを削除できるようにします。グループを削除すると、そのグループに関連付けられているスケジュールも削除されます。グループを削除するプリンシパルには、そのグループに関連付けられているスケジュールも削除する権限が必要です。このポリシーは、指定されたスケジュールグループとグループ内のすべてのスケジュールに対して scheduler:DeleteScheduleGroup アクションを呼び出す権限をプリンシパルに付与します。

注記

EventBridge スケジューラは、個々のスケジュールにリソースレベルの権限を指定することをサポートしていません。例えば、次の記述は無効であり、ポリシーには含めないでください。

"Resource": "arn:aws:scheduler:us-west-2:123456789012:schedule/my-group/my-schedule-name"

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "scheduler:DeleteSchedule", "Resource": "arn:aws:scheduler:us-west-2:123456789012:schedule/my-group/*" }, { "Effect": "Allow", "Action": "scheduler:DeleteScheduleGroup", "Resource": "arn:aws:scheduler:us-west-2:123456789012:schedule/my-group/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/*", "Condition": { "StringLike": { "iam:PassedToService": "scheduler.amazonaws.com" } } } ] }

AWS マネージドポリシーの更新

変更 説明 日付

AmazonEventBridgeSchedulerFullAccess – 新しい管理ポリシー

EventBridge スケジューラは、スケジュールやスケジュールグループを含むすべてのリソースへのフルアクセスをユーザーに許可する新しいマネージドポリシーのサポートを追加しました。

2022 年 11 月 10 日

AmazonEventBridgeSchedulerReadOnlyAccess – 新しい管理ポリシー

EventBridge スケジューラは、スケジュールやスケジュールグループを含むすべてのリソースへの読み取り専用アクセスをユーザーに許可する新しいマネージドポリシーのサポートを追加しました。

2022 年 11 月 10 日

EventBridge スケジューラが変更の追跡を開始

EventBridge が AWS マネージドポリシーの変更の追跡を開始しました。

2022 年 11 月 10 日