Kök hesabım altındaki kullanıcının üstlenebileceği bir IAM rolü altında bir küme başlatmak için Spark EC2 komut dosyalarını çalıştırmaya çalışıyorum.IAM rolüyle çalışan Spark EC2 komut dosyaları
this JIRA ticket göre, Kıvılcım EC2 komut dosyalarını çalıştırırken şimdi --profile
belirleyebilir ve comments on the pull request--profile
seçenek Ben AWSCLI profil olarak inandığımız atıfta söylüyorlar.
Ben
ec2/spark-ec2 -k key-name -i key-name.pem -s 1 --profile myprofile --instance-type=t2.medium launch test-cluster
olarak komut dosyalarını çalıştırdığınızda ben amaçlandığı gibi
aws s3 ls s3://mybucket --profile myprofile
eserler IAM rol düşünmek gözlerimi açan doğru belirtildi çalışan Ancak
Profile "myprofile" not found!
olsun ~/.aws/config
(Beniçinde IAM rolleri belirtin sanmıyorum 10). Ben ~/.aws/credentials
[foobar]
aws_secret_access_key=xxxxxxx
aws_access_key_id=xxxxxxx
olarak Kıvılcımına bir test profillerine eklediği
Ancak foobar
profili bulur. Ancak, sonra foobar
profil
[foobar]
role_arn = arn:aws:iam::12345:role/MY_ROLE
aws_secret_access_key=xxxxxxx
aws_access_key_id=xxxxxxx
Spark bulur ekleyerek, ancak doğru IAM rolüne giriş etmez. Ben anahtar çifti key-name
benim kullanıcı altında yok olmasıdır
boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>InvalidKeyPair.NotFound</Code><Message>The key pair 'key-name' does not exist</Message></Error></Errors><RequestID>fcebd475-a895-4a5b-9a29-9783fd6b7f3d</RequestID></Response>
olsun, ama ben varsaymak gerekir IAM rolü altında mevcut. Bu bana Spark'in IAM rolüne düzgün bir şekilde giriş yapmadığını söyledi.
Benim ~/.aws/config
:
[default]
region = us-east-1
aws_secret_access_key = xxxxx
aws_access_key_id = xxxxx
[profile myprofile]
role_arn = arn:aws:iam::12345:role/MY_ROLE
source_profile = default
Benim
~/.aws/credentials
:
[default]
aws_secret_access_key = xxxxx
aws_access_key_id = xxxxx
Yan da denenmiş not-:
A
aws sts assume-role --role-arn arn:aws:iam::12345:role/MY_ROLE --role-session-name temp-session
sonra ortam değişkenlerine
AWS_SECRET_ACCESS_KEY
,
AWS_SESSION_TOKEN
ve
AWS_ACCESS_KEY_ID
ihracat ile manuel olarak rol ssuming. Sonra belirtilen herhangi profili olmayan EC2 komut koştu ve ayrıca denenmiş not-
boto.exception.EC2ResponseError: EC2ResponseError: 401 Unauthorized
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>AuthFailure</Code><Message>AWS was not able to validate the provided access credentials</Message></Error></Errors><RequestID>11402f6e-074c-478c-84c1-11fb92ad0bff</RequestID></Response>
Side var:
this JIRA on Spark scripts with IAM roles göre, --instance-profile-name
(bir örnek üzerinde profil belirtebilirsiniz Bu şekilde bir IAM rolünü kullanmanın tek yolu: yani .. IAM listesi/IAM rolü olan bir küme başlatmak için izinlerim oluşturmak için yöneticimize sormam gerekir mi?). Ben arn:aws:iam::12345:role/MY_ROLE
ve MY_ROLE
ama bir profil iletebilirsiniz kıvılcım-EC2 komut dosyası ile '--instance profilli adı' parametresini vererek bir EC2 örneğine bir rol atayarak yönetilen
boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>InvalidParameterValue</Code><Message>Value (arn:aws:iam::12345:role/MY_ROLE) for parameter iamInstanceProfile.name is invalid. Invalid IAM Instance Profile name</Message></Error></Errors><RequestID>ffeffef9-acad-4a34-a925-31f6b5bbbb3e</RequestID></Response>