簡體   English   中英

Kinesis firehose 寫入 S3 但訪問被拒絕

[英]Kinesis firehose writes to S3 but access denied

  • 我設置了一個 Kinesis Firehose。
  • 使用 PUT 數據 stream。
  • 它將 CSV 數據寫入 S3。
  • 這是寫跨賬戶,從一個 AWS 賬戶到另一個賬戶。

這一切都很好。 我可以下載它寫入 S3 的數據,我可以查詢它。

  • 另一個團隊創建了不同的 Firehose
  • 這是在他們的 AWS 賬戶中,用於將數據寫入我的 S3 存儲桶。
  • 數據到達,我可以在控制台中看到它。
  • 他們以 Parquet 格式編寫。

出於某種原因,如果我嘗試下載或查詢他們寫入 S3 的任何內容,我會收到“訪問被拒絕”。

我從我自己的 firehose(在第三個不同的帳戶中)將數據發送到 S3 存儲桶,我可以看到很好。 只有來自他們的 Firehose 的 Parquet 格式數據才會被拒絕訪問

故障排除

我比較了我的 firehose 的 object 和他們的 firehose 的 object 之間的對象級權限:(每個都來自不同的賬戶,進入我的 S3 存儲桶所在的賬戶)。

  1. 以下是我注入 S3 存儲桶的(CSV,文本)object 的 object 權限:

這些是我可以正常閱讀的 S3 對象。

受贈人:Object 所有者(外部帳戶)規范 ID:4aXXXXXXedc8fd
Object :讀
Object ACL :讀、寫

受贈人:您的 AWS 賬戶規范 ID:c43XXXXXXXX97958
Object :讀
Object ACL :讀、寫

  1. 以下是 (Parquet JSON) object 的 Object 權限,其他團隊將其注入桶中:

這些是我被拒絕訪問的對象。

它們具有完全相同的權限,顯然 object 所有者帳戶 ID 是不同的,因為它是從不同帳戶的 firehose 中寫入的。

受贈人:Object 所有者(外部帳戶)規范 ID:2efXXXXXXd5e2d
Object :讀
Object ACL :讀、寫

受贈人:您的 AWS 賬戶規范 ID:c43XXXXXXXX97958
Object :讀
Object ACL :讀、寫

問題:

為什么我在其他團隊的 Firehose 創建的 S3 對象上收到“訪問被拒絕”?

對象級權限看起來是一樣的。

我們應用了兩個修復程序,並且有效

  1. Firehose 使用的目標帳戶中的角色需要授予 S3:PutObjectAcl。 這是早期檢查過的,但在重新檢查后它已經消失了,所以它被添加回來了。

  2. 我們在發送帳戶中關閉了 KMS 加密。 這是使用目標帳戶無法訪問的密鑰。 這可以通過向寫入數據的角色添加權限來解決,但為了調試,我們剝離了所有內容以使其作為基線工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM