Amazon Forecast のアクセス許可を設定する - Amazon Forecast

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Forecast のアクセス許可を設定する

Amazon Forecast は、Amazon Simple Storage Service (Amazon S3) を使用してターゲットの時系列データを保存します。このデータは、予測を生成できる予測子をトレーニングするために使用されます。Amazon Forecast がお客様に代わって Amazon S3 にアクセスするには、許可を設定する必要があります。

お客様の代わりに Amazon S3 を使用するための許可を Amazon Forecast に付与するには、アカウントで AWS Identity and Access Management (IAM) ロールと IAM ポリシーを設定する必要があります。IAM ポリシーは必要な許可を指定します。また、IAM ロールにアタッチする必要があります。

IAM ロールとポリシーを作成し、ロールにポリシーをアタッチするには、IAM コンソールまたは AWS Command Line Interface (AWS CLI) を使用できます。

注記

Forecast は Amazon Virtual Private Cloud と通信せず、Amazon S3 の VPCE ゲートウェイをサポートできません。VPC アクセスのみを許可する S3 バケットを使用すると、AccessDenied エラーが発生します。

Amazon Forecast の IAM ロールを作成する (IAM コンソール)

AWS IAM コンソールを使用して以下を実行できます。

  • 信頼できるエンティティとして Amazon Forecast を使用して IAM ロールを作成する

  • Amazon Forecast に Amazon S3 バケットのデータの表示、読み取り、書き込みを許可する許可を使用して IAM ポリシーを作成する

  • IAM ポリシーを IAM ロールにアタッチします。

Amazon S3 へのアクセスを Amazon Forecast に許可する IAM ロールとポリシーを作成するには (IAM コンソール)
  1. IAM コンソール (https://console.aws.amazon.com/iam) にサインインします。

  2. [ポリシー] を選択して次の手順を実行し、必要なポリシーを作成します。

    1. [Create policy] (ポリシーの作成) をクリックします。

    2. [ポリシーの作成] ページのポリシーエディタで [JSON] タブを選択します。

    3. 次のポリシーをコピーし、エディタ内に貼り付けてテキストを置き換えます。bucket-name を必ず S3 バケットの名前に置き換えてから、[ポリシーの確認] を選択します。

      { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:Get*", "s3:List*", "s3:PutObject" ], "Resource":[ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }

      [次へ: タグ] をクリックします

    4. オプションで、このポリシーにタグを割り当てることができます。[Next: Review] (次: 確認) をクリックします。

    5. [ポリシーの確認] ページで [名前] にポリシーの名前を入力します。例えば、AWSS3BucketAccess です。必要に応じて、このポリシーの説明を入力してから、[ポリシーの作成] を選択します。

  3. ナビゲーションペインで、[ロール] を選択します。次の手順に従って IAM ロールを作成します。

    1. ロールの作成 を選択します。

    2. 信頼できるエンティティタイプ で、AWS のサービス を選択します。

      [ユースケース] では、[一般的なユースケース] セクションまたは [その他の AWS のサービス のユースケース] ドロップダウンリストから [Forecast] を選択します。[Forecast] が見つからない場合は、[EC2] を選択してください。

      [次へ] をクリックします。

    3. [権限の追加] セクションで [次へ] をクリックします。

    4. [名前、レビュー、および作成] セクションで、[ロール名] にロールの名前 (ForecastRole など) を入力します。[ロールの説明] で、ロールの説明を更新し、[ロールの作成] を選択します。

    5. これで [ロール] ページに戻るはずです。新しいロールを選択して、ロールの詳細ページを開きます。

    6. [概要] で、[ロール ARN] の値をコピーして保存します。データセットを Amazon Forecast 内にインポートするときに必要になります。

    7. このロールを使用するサービスとして [Amazon Forecast] を選択しなかった場合は、[信頼関係] を選択し、[信頼関係の編集] を選択して、信頼ポリシーを次のように更新します。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "forecast.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:forecast:region:account-id:*" } } } ] }
    8. [オプション] KMS キーを使用して暗号化を有効にする場合は、KMS キーと ARN をアタッチしてください。

      { "Version": "2012-10-17", "Statement": [ { "Sid": "ForecastKMS", "Effect": "Allow", "Action": "kms:*", "Resource": "arn:aws:kms:region:account-id:key/KMS-key-id" } ] }

Amazon Forecast の IAM ロールを作成する (AWS CLI)

AWS CLI は、以下のことを実行するために使用できます。

  • 信頼できるエンティティとして Amazon Forecast を使用して IAM ロールを作成する

  • Amazon Forecast に Amazon S3 バケットのデータの表示、読み取り、書き込みを許可する許可を使用して IAM ポリシーを作成する

  • IAM ポリシーを IAM ロールにアタッチします。

Amazon S3 へのアクセスを Amazon Forecast に許可する IAM ロールとポリシーを作成するには (AWS CLI)
  1. 信頼されたエンティティとして Amazon Forecast を使用して、お客様の代わりとなる IAM ロールを作成します。

    aws iam create-role \ --role-name ForecastRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "forecast.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:forecast:region:account-id:*" } } } ] }'

    このコマンドは、デフォルトの AWS 設定プロファイルが、Amazon Forecast でサポートされている AWS リージョン をターゲットとしていることを前提としています。Amazon Forecast でサポートされていない AWS リージョン をターゲットとするように別のプロファイル (例: aws-forecast) を設定した場合は、コマンドに profile パラメータを含めることによってその設定を明示的に指定する必要があります (例: --profile aws-forecast)。AWS CLI 設定プロファイルの設定の詳細については、AWS CLI の configure コマンドを参照してください。

    コマンドが正常にロールを作成すると、それが次のような出力として返されます。

    { "Role": { "Path": "/", "RoleName": "ForecastRole", "RoleId": your-role-ID, "Arn": "arn:aws:iam::your-acct-ID:role/ForecastRole", "CreateDate": "creation-date", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "forecast.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "your-acct-ID" }, "ArnLike": { "aws:SourceArn": "arn:aws:forecast:region:your-acct-ID:*" } } } ] } } }

    ロールの ARN をメモします。これは、Amazon Forecast 予測子をトレーニングするためのデータセットをインポートする際に必要です。

  2. Amazon S3 のデータの一覧表示、読み取り、書き込みを行うための許可を指定した IAM ポリシーを作成し、ステップ 1 で作成した IAM ロールに付与します。

    aws iam put-role-policy \ --role-name ForecastRole \ --policy-name ForecastBucketAccessPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:Get*", "s3:List*", "s3:PutObject" ], "Resource":[ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }'

  3. [オプション] KMS キーを使用して暗号化を有効にする場合は、KMS キーと ARN をアタッチしてください。

    aws iam put-role-policy \ --role-name ForecastRole \ --policy-name ForecastBucketAccessPolicy \ --policy-document '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:Get*", "s3:List*", "s3:PutObject" ], "Resource":[ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }'aws iam put-role-policy \ --role-name ForecastRole \ --policy-name ForecastKMSAccessPolicy \ --policy-document ‘{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant" ], "Resource":[ "arn:aws:kms:region:account-id:key/KMS-key-id" ] } ] }’

サービス間の混乱した代理の防止

混乱した代理問題とは、あるアクションを実行する許可を持たないエンティティが、より多くの特権を持つエンティティにアクションの実行を強制できることで生じるセキュリティ上の問題です。AWS では、サービス間でのなりすましが、混乱した代理問題を生じさせる可能性があります。サービス間でのなりすましは、あるサービス (呼び出し元サービス) が、別のサービス (呼び出し対象サービス) を呼び出すときに発生する可能性があります。呼び出し元サービスが操作され、それ自身のアクセス許可が使用されて、本来アクセス許可が付与されるべきではない方法により、別の顧客のリソースに影響を与える可能性があります。これを防ぐために、AWS には、アカウント内のリソースへのアクセス権が付与されたサービスプリンシパルですべてのサービスのデータを保護するために役立つツールが用意されています。

リソースポリシーの aws:SourceArn および aws:SourceAccount のグローバル条件コンテキストキーを使用して、Identity and Access Management (IAM) が Amazon Forecast に付与する、リソースへのアクセス許可を制限することをお勧めします。両方のグローバル条件コンテキストキーを同じポリシーステートメントで使用する場合、aws:SourceAccount 値、および aws:SourceArn 値の中のアカウントで、同じアカウント ID を使用する必要があります。