本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Amazon S3 儲存貯體設定為請求者付費時,執行查詢的使用者帳戶需支付與查詢相關聯的資料存取和資料傳輸費用。如需詳細資訊,請參閱《Amazon S3 使用者指南》中的使用請求者支付儲存貯體,以進行儲存傳輸和使用。
在 Athena for Spark 中,請求者支付儲存貯體是依工作階段啟用的,而非工作群組。在高層級上,啟用請求者支付時段包含下列步驟:
-
在 Amazon S3 主控台中,啟用請求者支付儲存貯體的屬性,並新增儲存貯體政策以指定存取權。
-
在 IAM 主控台中,建立允許存取儲存貯體的 IAM 政策,然後將政策連接至將用於存取請求者支付儲存貯體之 IAM 角色的 IAM 角色。
-
在 Athena for Spark 中,新增工作階段屬性,以啟用請求者支付功能。
步驟 1:啟用請求者支付 Amazon S3 儲存貯體的費用並新增儲存貯體政策
若要為 Amazon S3 儲存貯體啟用請求者支付
開啟位於 https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在儲存貯體清單中,按一下要啟用請求者支付的儲存貯體名稱。
-
在儲存貯體頁面上,選擇屬性索引標籤。
-
向下捲動到請求者支付區段,然後選擇編輯。
-
在編輯請求者支付頁面上,選擇啟用,然後選擇儲存變更。
-
選擇許可索引標籤標籤。
-
在儲存貯體政策區段中,選擇編輯。
-
在編輯儲存貯體政策頁面上,將儲存貯體政策套用至您要確定來源儲存貯體的政策。下列範例政策可讓您存取所有 AWS 主體 (
"AWS": "*"
),但您的存取可能更為精細。例如,您可能只想在其他帳戶中指定特定 IAM 角色。{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::
account_number
-us-east-1-my-s3-requester-pays-bucket", "arn:aws:s3:::account_number
-us-east-1-my-s3-requester-pays-bucket/*" ] } ] }
步驟 2:建立 IAM 政策並將其連接至 IAM 角色
接下來,建立 IAM 政策以允許存取儲存貯體。然後,您將政策連接到將用於存取請求者支付儲存貯體的角色。
為請求者支付儲存貯體建立 IAM 政策,並將該政策連接其中
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在 IAM 主控台的導覽窗格中,選擇政策。
-
選擇 Create policy (建立政策)。
-
選擇 JSON。
-
在政策編輯器中,新增如下政策:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
account_number
-us-east-1-my-s3-requester-pays-bucket", "arn:aws:s3:::account_number
-us-east-1-my-s3-requester-pays-bucket/*" ] } ] } -
選擇 Next (下一步)。
-
在檢閱和建立頁面上,輸入政策的名稱和可選描述,然後選擇建立政策。
-
在導覽窗格中,選擇角色。
-
在角色頁面上,尋找您要使用的角色,然後選擇角色名稱連結。
-
在許可政策區段中,選擇新增許可、連接政策。
-
在其他許可政策區段中,選取您建立的政策的核取方塊,然後選擇新增許可。
步驟 3:新增 Athena for Spark 工作階段屬性
設定 Amazon S3 儲存貯體和請求者支付的相關許可後,您可以在 Athena for Spark 工作階段中啟用此功能。
若要啟用請求者支付 Athena for Spark 工作階段中的儲存貯體費用
-
在筆記本編輯器中,從右上角的 Session (工作階段) 選單中,選擇 Edit session (編輯工作階段)。
-
展開 Spark 屬性。
-
選擇在 JSON 中編輯。
-
在 JSON 文字方塊中,輸入下列內容:
{ "spark.hadoop.fs.s3.useRequesterPaysHeader":"true" }
-
選擇 Save (儲存)。