設定 Amazon Forecast 的許可 - Amazon Forecast

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 Amazon Forecast 的許可

Amazon Forecast 使用 Amazon Simple Storage Service (Amazon S3) 來存放用於訓練可產生預測的預測值的目標時間序列資料。若要代表您存取 Amazon S3,Amazon Forecast 需要您的許可。

若要授予 Amazon Forecast 代表您使用 Amazon S3 的權限,您的帳戶中必須具有 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 預測在 Amazon S3 儲存貯體中顯示、讀取和寫入資料的許可的 IAM 政策

  • 將身分與存取權管理政策附加到 IAM 角色

建立允許 Amazon Forecast 存取 Amazon S3 (IAM 主控台) 的 IAM 角色和政策
  1. 登入 IAM 主控台 (https://console.aws.amazon.com/iam)。

  2. 選擇 Policies (政策),並執行下列動作來建立所需的政策:

    1. 按一下 Create Policy (建立政策)。

    2. Create policy (建立政策) 頁面的政策編輯器中,選擇 JSON 標籤。

    3. 複製以下政策,並將此政策貼到文字編輯器中以取代其中的文字。請務必以您的 S3 儲存貯體名稱取代 bucket-name,然後選擇 Review policy (檢閱政策)

      { "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. Review Policy (檢閱政策)Name (名稱) 中,輸入政策的名稱。例如 AWSS3BucketAccess。您也可以為政策提供描述,然後選擇 Create policy (建立政策)

  3. 在導覽窗格中,選擇角色。然後執行下列動作來建立 IAM 角色:

    1. 選擇建立角色

    2. 對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務

      對於使用案例,請從 [常見使用案例] 區段或 [其他使用案例] AWS 服務 下拉式清單中選取 [Fo rec ast]。如果找不到「Forec ast」,請選擇 EC2

      按一下 Next (下一步)

    3. 在 [新增權限] 區段中,按 [下一步]。

    4. 名稱、檢閱和建立區段中,對於角色名稱,輸入角色的名稱 (例如ForecastRole)。更新 Role description (角色描述) 中角色的描述,然後選擇 Create role (建立角色)

    5. 您現在應該返回「角色」頁面。選擇新角色來開啟角色的詳細資訊頁面。

    6. Summary (摘要) 中,複製 Role ARN (角色 ARN) 值,並將其儲存。您需要此值,才能將資料集匯入至 Amazon Forecast。

    7. 如果您未選擇 Amazon Forecast 做為將使用此角色的服務,請選擇 Trust relationships (信任關係),然後選擇 Edit trust relationship (編輯信任關係) 來更新信任政策,如下所示。

      { "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 預測在 Amazon S3 儲存貯體中顯示、讀取和寫入資料的許可的 IAM 政策

  • 將身分與存取權管理政策附加到 IAM 角色

建立允許 Amazon Forecast 存取 Amazon S3 的 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 區域 支援的設定檔。如果您已將另一個設定檔 (例如aws-forecast) 設定為AWS 區域目標不受 Amazon 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. 建立具有權限的 IAM 政策,以便在 Amazon S3 中列出、讀取和寫入資料,並將其附加到您在步驟 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:SourceArnaws:SourceAccount全域條件內容金鑰,以限制 Identity and Access Management (IAM) 授予 Amazon Forecast 資源存取權限的許可。如果您同時使用全域條件內容索引鍵,則aws:SourceAccount值中的值和帳戶在aws:SourceArn相同的策略陳述式中使用時必須使用相同的帳戶 ID。