從 Athena 訪問 Amazon S3 - Amazon Athena

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

從 Athena 訪問 Amazon S3

您可以使用身分型政策、儲存貯體資源政策、存取點政策或上述政策的任何組合,授予對 Amazon S3 位置的存取權。當演員與 Athena 互動時,其許可會傳遞給 Athena,進而確定 Athena 可以存取的內容。這表示使用者必須擁有存取 Amazon S3 儲存貯體的許可,才能向 Athena 查詢這些儲存貯體。

每當您使用 IAM 政策時,請務必遵循 IAM 最佳實務。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 中的安全性最佳實務

請注意,向 Amazon S3 發出的請求來自 Athena 的私有 IPv4 地址,而不是中aws:SourceIp指定的來源 IP。因此,您無法使用該aws:SourceIp條件拒絕指定 IAM 政策中對 Amazon S3 動作的存取。您也無法根據或aws:SourceVpce條件金鑰限制aws:SourceVpc或允許存取 Amazon S3 資源。

注意

使用 IAM Identity Center 身分驗證的 Athena 工作群組,需要將 S3 Access Grants 設定為使用受信任的身分傳播身分。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的 S3 Access Grants 和目錄身分

使用身分型政策控制 Amazon S3 儲存貯體的存取

以身分為基礎的政策會連接至 IAM 使用者、群組或角色。這些政策可讓您指定該身分可以執行哪些動作 (其許可)。您可以使用以身分識別為基礎的政策來控制對 Amazon S3 儲存貯體的存取。

下列身分型政策允許ReadWrite存取特定 Amazon S3 儲存貯體中的物件。若要使用此原則,請以您自己的值取代斜體預留位置文字

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET"] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": ["arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"] } ] }

使用儲存貯體資源政策控制 Amazon S3 儲存貯體的存取

您可以使用 Amazon S3 儲存貯體政策來保護儲存貯體中物件的存取,以便只有具有適當許可的使用者才能存取它們。如需建立 Amazon S3 政策的指引,請參閱 Amazon S3 使用者指南中的使用 Amazon S3 主控台新增儲存貯體政策。

下列範例權限原則會限制使用者讀取具有environment: production標籤索引鍵和值的物件。範例原則會使用s3:ExistingObjectTag條件索引鍵來指定標籤鍵和值。

{ "Version":"2012-10-17", "Statement": [ { "Principal":{"AWS":"arn:aws:iam::111122223333:role/JohnDoe" }, "Effect":"Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringEquals":{"s3:ExistingObjectTag/environment":"production" } ] }

如需更多儲存貯體政策範例,請參閱 Amazon S3 儲存貯體使用者指南中的 Amazon S3 儲存貯體政策範例。

Amazon S3 存取點、存取點別名和存取點政策

如果您在 Amazon S3 儲存貯體中具有共用的資料集,則維護負責管理數百個使用案例存取的單一儲存貯體政策可能十分具有挑戰性。

Amazon S3 儲存貯體存取點有助於解決此問題。儲存貯體可有多個存取點,每個存取點都有一個以不同方式控制儲存貯體存取的政策。

Amazon S3 會對您建立的每個存取點產生代表存取點的別名。由於別名採用 Amazon S3 儲存貯體名稱格式,您可以在 Athena 的 CREATE TABLE 陳述式 LOCATION 子句中使用該別名。接著,會由別名所代表的存取點政策來控制 Athena 對儲存貯體的存取。

如需詳細資訊,請參閱《Amazon S3 使用者指南》中的 Amazon S3 中的資料表位置使用存取點

使用 CalledVia 上下文鍵

為了提升安全性,您可以使用 aws:CalledVia 全域條件內容索引鍵。aws:CalledVia 索引鍵包含代表主體提出請求的鏈結中,每個服務的排序清單。透過針對 aws:CalledVia 內容索引鍵指定 Athena 服務主體名稱 athena.amazonaws.com,您可以限制僅能有從 Athena 進行的請求。如需詳細資訊,請參閱 搭配 CalledVia 內容金鑰使用 Athena

其他資源

如需有關如何授予 Amazon S3 存取權的詳細資訊和範例,請參閱以下資源: