EMR Notebooks のサービスロール
各 EMR Notebooks には、AWS の他のリソースにアクセスしてアクションを実行するためのアクセス許可が必要です。このサービスロールにアタッチされた IAM ポリシーは、ノートブックが AWS の他のサービスとやり取りするためのアクセス許可を提供します。AWS Management Console を使用してノートブックを作成する場合は、AWS サービスロールを指定します。デフォルトのロール (EMR_Notebooks_DefaultRole
) を使用するか、独自に作成したロールを指定できます。ノートブックを以前に作成していない場合は、デフォルトのロールを作成することを選択できます。
-
デフォルトのロール名は
EMR_Notebooks_DefaultRole
です。 -
EMR_Notebooks_DefaultRole
にアタッチされるデフォルト管理ポリシーは、AmazonElasticMapReduceEditorsRole
およびS3FullAccessPolicy
です。
サービスロールでは、次の信頼ポリシーを使用する必要があります。
重要
次の信頼ポリシーには、Amazon EMR に付与するアクセス許可をアカウント内の特定のリソースに制限するためのグローバル条件キー aws:SourceArn
および aws:SourceAccount
が含まれています。これらを使用することで、「混乱した代理」問題から保護できます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
<account-id>
" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticmapreduce:<region>
:<account-id>
:*" } } } ] }
AmazonElasticMapReduceEditorsRole
のバージョン 1 の内容は以下のとおりです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "aws:elasticmapreduce:editor-id", "aws:elasticmapreduce:job-flow-id" ] } } } ] }
S3FullAccessPolicy
の内容は次のとおりです。S3FullAccessPolicy
により、EMR Notebooks のサービスロールが、AWS アカウント のオブジェクトに対してすべての Amazon S3 アクションを実行できます。EMR Notebooks のカスタムサービスロールを作成するときは、サービスロールに Amazon S3 アクセス許可を付与する必要があります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }
サービスロールの読み取りおよび書き込みアクセスの範囲を、ノートブックファイルを保存する Amazon S3 の場所に制限できます。次の最小 Amazon S3 アクセス許可セットを使用します。
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"
Amazon S3 バケットが暗号化されている場合は、AWS Key Management Service の以下のアクセス許可を含める必要があります。
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
Git リポジトリをノートブックにリンクし、リポジトリのシークレットを作成する必要がある場合は、Amazon EMR Notebooks のサービスロールにアタッチされた IAM ポリシーに secretsmanager:GetSecretValue
アクセス許可を追加する必要があります。ポリシーの例を以下に示します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
EMR Notebooks サービスロールのアクセス許可
次の表は、EMR Notebooks がサービスロールを使用して実行するアクションと、各アクションに必要なアクセス許可をリストしています。
アクション | アクセス許可 |
---|---|
ノートブックと Amazon EMR クラスターの間にセキュアネットワークチャネルを確立し、必要なクリーンアップアクションを実行する。 |
|
AWS Secrets Manager に保存されている Git 認証情報を使用して Git リポジトリをノートブックにリンクする。 |
|
EMR Notebooks がセキュアネットワークチャネルの設定時に作成するネットワークインターフェイスおよびデフォルトのセキュリティグループに AWS タグを適用する。詳細については、「AWS リソースのタグ付け」を参照してください。 |
|
ノートブックファイルとメタデータにアクセスする、それらを Amazon S3 にアップロードする。 |
以下のアクセス許可は、暗号化された Amazon S3 バケットを使用する場合にのみ必要です。
|
EMR Notebooks での AWS 管理ポリシーに関する更新
2021 年 3 月 1 日以降に行われた、EMR Notebooks の AWS 管理ポリシーへの更新についての詳細を確認してください。
変更 | 説明 | 日付 |
---|---|---|
AmazonElasticMapReduceEditorsRole - Added
permissions |
EMR Notebooks で |
2023 年 2 月 8 日 |
EMR Notebooks が変更の追跡を開始 |
EMR Notebooks が AWS 管理ポリシーの変更の追跡を開始しました。 |
2023 年 2 月 8 日 |