View a markdown version of this page

クエリをスケジュールするアクセス許可の設定 - Amazon Redshift

Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、ブログ記事を参照してください。

クエリをスケジュールするアクセス許可の設定

クエリをスケジュールするには、スケジュールを定義する AWS Identity and Access Management (IAM) ユーザーとスケジュールに関連付けられている IAM ロールが Amazon EventBridge と Amazon Redshift Data API を使用する IAM アクセス許可で設定されている必要があります。スケジュールされたクエリから E メールを受信するには、オプションで指定する Amazon SNS 通知も設定する必要があります。

以下では、AWS マネージドポリシーを使用してアクセス許可を付与するタスクについて説明しますが、環境によっては、許可されるアクセス許可の範囲の絞り込みが必要な場合があります。

クエリエディタ v2 にログインしている IAM ユーザーの場合は、IAM コンソール (https://console.aws.amazon.com/iam/) を使用して IAM ユーザーを編集します。

  • Amazon Redshift とクエリエディタ v2 のオペレーションを実行するアクセス許可に加えて、IAM ユーザーに AmazonEventBridgeFullAccess および AmazonRedshiftDataFullAccess AWS マネージドポリシーをアタッチします。

  • または、ロールにアクセス許可を割り当て、そのロールをユーザーに割り当てます。

    スケジュールされたクエリを定義するときに指定する IAM ロールのリソース ARN に sts:AssumeRole アクセス許可を与えるポリシーをアタッチします。ロールの引き受けについての詳細は、IAM ユーザーガイドの「ロールを切り替えるアクセス許可をユーザーに付与する」を参照してください。

    次の例では、アカウント 123456789012 で IAM ロール myRedshiftRole を引き受けるアクセス許可ポリシーを示します。IAM ロール myRedshiftRole は、スケジュールされたクエリを実行するクラスターまたはワークグループにアタッチする IAM ロールでもあります。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AssumeIAMRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": [ "arn:aws:iam::123456789012:role/myRedshiftRole" ] } ] }

    クエリのスケジュールに使用する IAM ロールの信頼ポリシーを更新して、IAM ユーザーがロールを引き受けられるようにします。

    { "Sid": "AssumeRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/myIAMusername" }, "Action": "sts:AssumeRole" } ] }

スケジュールされたクエリの実行を許可するように指定した IAM ロールについては、IAM コンソール (https://console.aws.amazon.com/iam/) を使用して IAM ロールを編集します。

  • AmazonRedshiftDataFullAccess および AmazonEventBridgeFullAccess AWS マネージドポリシーを IAM ロールにアタッチします。AmazonRedshiftDataFullAccess マネージドポリシーは、キー RedshiftDataFullAccess でタグ付けされた Redshift Serverless ワークグループに対してのみ redshift-serverless:GetCredentials アクセス許可を付与します。