本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授權存取 Amazon S3 中的EMRFS資料
根據預設, EMR的角色會EC2決定存取 Amazon S3 中EMRFS資料的許可。無論透過 提出請求的使用者或群組為何,連接到此角色IAM的政策都適用EMRFS。預設值為 EMR_EC2_DefaultRole
。如需詳細資訊,請參閱叢集EC2執行個體的服務角色 (EC2 執行個體設定檔)。
從 Amazon 5.10.0 EMR版開始,您可以使用安全組態來指定 IAM的角色EMRFS。這可讓您為具有多個使用者的叢集自訂 Amazon S3 EMRFS請求的許可。您可以根據 Amazon S3 中的字首,為不同的使用者和群組以及不同的 Amazon S3 儲存貯體位置指定不同的IAM角色。當 向 Amazon S3 EMRFS提出符合使用者、群組或指定位置的請求時,叢集會使用您指定的對應角色,而不是 EMR的角色EC2。如需詳細資訊,請參閱設定 Amazon S3 EMRFS請求IAM的角色。
或者,如果您的 Amazon EMR解決方案的需求超過 EMRFS提供IAM的角色,您可以定義自訂憑證提供者類別,這可讓您自訂對 Amazon S3 中EMRFS資料的存取。
為 Amazon S3 中的EMRFS資料建立自訂憑證提供者
若要建立自訂憑證提供者,請實作 AWSCredentialsProvider和 Hadoop 可設定
如需此方法的詳細說明,請參閱巨量資料部落格中的安全分析來自另一個 AWS 帳戶EMRFS
基本步驟如下:
若要指定自訂登入資料供應商
建立編譯為 JAR 檔案的自訂憑證提供者類別。
執行指令碼作為引導動作,將自訂憑證提供者JAR檔案複製到叢集主節點上的
/usr/share/aws/emr/emrfs/auxlib
位置。如需有關引導操作的詳細資訊,請參閱 (選用) 建立引導操作以安裝其他軟體。-
自訂
emrfs-site
分類以指定您在JAR檔案中實作的類別。如需指定要自訂應用程式的組態物件的詳細資訊,請參閱 Amazon EMR版本指南 中的設定應用程式。以下範例示範
create-cluster
命令,其會啟動 Hive 叢集與常見的組態參數,而且還包括:執行指令碼
的引導操作,此指令碼會儲存至 Amazon S3 中的copy_jar_file.sh
。amzn-s3-demo-bucket
將JAR檔案中定義的自訂憑證提供者指定為 的
emrfs-site
分類MyCustomCredentialsProvider
注意
包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。
aws emr create-cluster --applications Name=Hive \ --bootstrap-actions '[{"Path":"
s3://amzn-s3-demo-bucket/copy_jar_file.sh
","Name":"Custom action"}]' \ --ec2-attributes '{"KeyName":"MyKeyPair
","InstanceProfile":"EMR_EC2_DefaultRole",\ "SubnetId":"subnet-xxxxxxxx","EmrManagedSlaveSecurityGroup":"sg-xxxxxxxx",\ "EmrManagedMasterSecurityGroup":"sg-xxxxxxxx"}' \ --service-role EMR_DefaultRole_V2 --enable-debugging --release-labelemr-7.3.0
\ --log-uri 's3n://my-emr-log-bucket
/' --name 'test-awscredentialsprovider-emrfs' \ --instance-type=m5.xlarge --instance-count 3 \ --configurations '[{"Classification":"emrfs-site",\ "Properties":{"fs.s3.customAWSCredentialsProvider":"MyAWSCredentialsProviderWithUri"},\ "Configurations":[]}]'