Site icon Mr. 沙先生

AWS EMR in Private subnet 常見啟動失敗的原因

最近遇到客戶反應 EMR 無法順利在 Private Subnet 啟動,複習一下在 EMR 啟動時必須注意的一些 requirements。

EMR 大概是多數人處理 Data 時最容易上手的一個 Service,由於 Hadoop 豐富的生態系以及支援 Custom AMI 的特性使 EMR 非常彈性,然而在處理資料上仍然有許多資安上考量需要放在 Private Subnet 上處理會比較安心,所以這篇會專注在 EMR on Private subnet 上會遇到的一些問題整理

一樣先把 AWS 相關文件放在前面:

簡單概述在文件上提到的幾件事:

{
   "Version": "2008-10-17",
   "Statement": [
       {
           "Sid": "AmazonLinuxAMIRepositoryAccess",
           "Effect": "Allow",
           "Principal": "*",
           "Action": "s3:GetObject",
           "Resource": [
               "arn:aws:s3:::packages.${region}.amazonaws.com/*",
               "arn:aws:s3:::repo.${region}.amazonaws.com/*"
           ]
       }
   ]
}
{
   "Version": "2008-10-17",
   "Statement": [
       {
           "Sid": "EnableApplicationHistory",
           "Effect": "Allow",
           "Principal": "*",
           "Action": [
               "s3:Put*",
               "s3:Get*",
               "s3:Create*",
               "s3:Abort*",
               "s3:List*"
           ],
           "Resource": [
               "arn:aws:s3:::prod.${region}.appinfo.src/*"
           ]
       }
   ]
}

除了上述 requirements 以外,以下情境也有可能造成 EMR 啟動失敗

另外 EMR 對於 Security Group 有比較多的額外處理,像是 Block Public Access 在大部分的 Region 會將 inbound 0.0.0.0/0 或 ::/0 移除。

References

Exit mobile version