このコードでそのバケット内のファイルにアクセスしようとすると、特定のS3バケットへのアクセスを許可するIAMロールのEC2インスタンスにJupyterHubがインストールされます。AWS EC2のIAMロールとJupyterHubのS3へのアクセス
私はその役割と同じポリシーを持つカーネル設定でAWSアクセスキーIDとシークレットアクセスキーをエクスポートするときIllegalArgumentException: u'AWS Access Key ID and Secret Access Key must be specified as the username or password (respectively) of a s3n URL, or by setting the fs.s3n.awsAccessKeyId or fs.s3n.awsSecretAccessKey properties (respectively).'
は、しかし、そのファイルの読み込みに成功した:
s3nRdd = spark.sparkContext.textFile("s3n://bucket/file")
は、私はこのエラーを取得します。
IAMロールを使用するのがベストプラクティスであるため、この状況でEC2ロールはなぜ機能しませんか。
--update-- EC2 IAMロールには、これらの2つのポリシーを持っている:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1488892557621",
"Action": "s3:*",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::<bucket_name>",
"arn:aws:s3:::<bucket_name>/*"
]
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "ec2:*",
"Effect": "Allow",
"Resource": "*"
},
{
"Sid": "Stmt1480684159000",
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"*"
]
}
]
}
はまた、私はs3a
プロトコルおよび更新をサポートしていませんHadoopのバージョン2.4.0を使用していますことはオプションではありません。
policy-simulatorを実行することを忘れないでください。「検証済みポリシー」は、あなたが思うように機能するということを意味するわけではありません。 IAMポリシーの制限はIAMユーザーレベルでのみ機能することを知るには時間が掛かります。 IAMの下にないリソース(SQS、S3など)には制限を指定できません。特定のリソースポリシー(IAMポリシーではありません)を記述し、それらのリソースのアクセス許可に添付する必要があります。 – mootmoot