EMR Notebooks 的服务角色 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

EMR Notebooks 的服务角色

每个 EMR Notebooks 都需要权限来访问其他Amazon资源和执行操作。附加到该服务角色的 IAM 策略为笔记本提供了与其他Amazon服务进行交互操作的权限。当您使用Amazon Web Services Management Console创建笔记本时,您指定一个Amazon服务角色。您可以使用默认角色 EMR_Notebooks_DefaultRole,也可以指定您创建的角色。如果之前尚未创建笔记本,则可以选择创建默认角色。

  • 默认角色名为 EMR_Notebooks_DefaultRole

  • 默认情况下,附加到 EMR_Notebooks_DefaultRole 的托管式策略是 AmazonElasticMapReduceEditorsRoleS3FullAccessPolicy

版本 1 的内容 AmazonElasticMapReduceEditorsRole 如下所示。

{ "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", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster" ], "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 的服务角色对 Amazon Web Services 账户 中的对象执行所有 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 存储桶已加密,您必须为 Amazon Key Management Service 包含以下权限。

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncrypt", "kms:DescribeKey"

当您将 Git 存储库链接到笔记本并需要为存储库创建密钥时,您必须在附加到 EMR Notebooks 的服务角色的 IAM 策略中添加 secretsmanager:GetSecretValue 权限。下面演示了一个示例策略:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

EMR Notebooks 服务角色权限

此表列出了 EMR Notebooks 使用服务角色执行的操作,以及每个操作所需的权限。

操作 权限
在笔记本和 Amazon EMR 集群之间建立安全的网络通道,并执行必要的清理操作。
"ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps"
使用存储在 Amazon Secrets Manager 中的 Git 凭证将 Git 存储库链接到笔记本。
"secretsmanager:GetSecretValue"
将Amazon标签应用于 EMR Notebooks 在设置安全网络通道时创建的网络接口和默认安全组。有关更多信息,请参阅标记Amazon资源
"ec2:CreateTags"
访问笔记本文件和元数据或将它们上传到 Amazon S3。
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

仅当您使用加密的 Amazon S3 存储桶时才需要以下权限。

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncrypt", "kms:DescribeKey"