Amazon Personalizeでのデータインポートを成功させるためのS3バケットポリシー設定ガイド

Amazon Personalizeでのデータインポートを成功させるためのS3バケットポリシー設定ガイド

Clock Icon2024.08.21

こんにちは、ともぞうです。今回は、Amazon Personalizeでのデータインポートを成功させるためのS3バケットポリシーの設定方法について解説します。

Amazon Personalizeは機械学習を用いたパーソナライズされたレコメンデーションを提供するサービスですが、データのインポートには、「①Amazon Personalize 向けの IAM ロールの作成」と「②S3バケットポリシーの設定」の両方が必須です。

この記事では、それらを設定する方法について説明します。

①Amazon Personalize 向けの IAM ロールの作成

信頼ポリシー

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

許可ポリシー

{
    "Version": "2012-10-17",
    "Id": "PersonalizeS3BucketAccessPolicy",
    "Statement": [
        {
            "Sid": "PersonalizeS3BucketAccessPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::<bucket-name>",
                "arn:aws:s3:::<bucket-name>/*"
            ]
        }
    ]
}

② S3バケットポリシーの作成

バケットポリシー

{
    "Version": "2012-10-17",
    "Id": "PersonalizeS3BucketAccessPolicy",
    "Statement": [
        {
            "Sid": "PersonalizeS3BucketAccessPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "personalize.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::<bucket-name>",
                "arn:aws:s3:::<bucket-name>/*"
            ]
        }
    ]
}

まとめ

Amazon Personalizeのデータインポートジョブを実行するために必要な「IAMロール」と「S3バケットポリシー」の作成手順を紹介しました。

通常どちらの設定も必要な場合とは、クロスアカウントアクセスの場合などが考えられます。

実際は1つのAWSアカウント内で「Amazon Personalize」と「S3バケット」を作成していますが、あたかもAmazon Personalizeは異なるAWS アカウント内(アカウントA)で作成されており、別AWS アカウント内(アカウントB)のS3バケットにアクセスしているように感じました。

このように通常と異なる対応が必要な場合はAWS公式ドキュメント(Amazon Personalize サービスロールに対する、Amazon S3 ポリシーのアタッチ)を参考にするといいですね。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.