本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Athena 控制對 Amazon S3 的存取
您可以使用身分型政策、儲存貯體資源政策、存取點政策或上述政策的任何組合,授予對 Amazon S3 位置的存取權。當演員與 Athena 互動時,其許可會傳遞給 Athena,進而確定 Athena 可以存取的內容。這表示使用者必須擁有存取 Amazon S3 儲存貯體的許可,才能向 Athena 查詢這些儲存貯體。
每當您使用IAM政策時,請務必遵循IAM最佳實務。如需詳細資訊,請參閱IAM《 使用者指南》中的安全最佳實務IAM。
請注意,對 Amazon S3 的請求來自 Athena 的私有IPv4地址,而不是 中指定的來源 IPaws:SourceIp
。因此,您不能使用 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 儲存貯體的存取。
下列身分型政策允許 Read
和 Write
存取特定 Amazon S3 儲存貯體中的物件。若要使用此政策,請將 取代italicized placeholder text
為您自己的值。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket"] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"] } ] }
使用儲存貯體資源政策來控制對 Amazon S3 儲存貯體的存取
您可以使用 Amazon S3 儲存貯體政策來安全地存取儲存貯體中的物件,以便只有具有適當許可的使用者才能存取它們。如需建立 Amazon S3 政策的指引,請參閱《Amazon 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:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals":{"s3:ExistingObjectTag/environment":"production" } ] }
如需更多儲存貯體政策範例,請參閱《Amazon S3 使用者指南》中的 Amazon S3 儲存貯體政策範例。 Amazon S3
使用 Amazon S3 存取點來更精確地控制儲存貯體存取
如果您在 Amazon S3 儲存貯體中具有共用的資料集,則維護負責管理數百個使用案例存取的單一儲存貯體政策可能十分具有挑戰性。
Amazon S3 儲存貯體存取點、政策和別名可協助解決此問題。儲存貯體可有多個存取點,每個存取點都有一個以不同方式控制儲存貯體存取的政策。
Amazon S3 會對您建立的每個存取點產生代表存取點的別名。由於別名採用 Amazon S3 儲存貯體名稱格式,您可以在 Athena 的 CREATE TABLE
陳述式 LOCATION
子句中使用該別名。接著,會由別名所代表的存取點政策來控制 Athena 對儲存貯體的存取。
如需詳細資訊,請參閱《Amazon S3 使用者指南》中的 在 Amazon S3 中指定表格位置 和使用存取點。
使用 CalledVia 內容索引鍵,僅允許從 Athena 呼叫其他 服務
為了提高安全性,您可以使用 aws:CalledVia 全域條件內容索引鍵。aws:CalledVia
條件索引鍵包含您允許 呼叫另一個 服務的服務清單。例如, AWS Lambda 只有在InvokeFunction
呼叫來自 Athena 時,您才能允許呼叫 ,方法是指定aws:CalledVia
內容金鑰athena.amazonaws.com
的 Athena 服務主體名稱。如需詳細資訊,請參閱使用 Athena 的 CalledVia 內容金鑰。
其他資源
如需有關如何授予 Amazon S3 存取權的詳細資訊和範例,請參閱以下資源:
-
《Amazon S3 使用者指南》中的範例演練:管理存取。