

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EMR Studio サービスロールを作成する
<a name="emr-studio-service-role"></a>

## EMR Studio サービスロールについて
<a name="emr-studio-about-service-role"></a>

各 EMR Studio は、Studio が他の AWS サービスとやり取りできるようにするアクセス許可を持つ IAM ロールを使用します。このサービスロールには、EMR Studio が Workspace とクラスター間の安全なネットワークチャネルを確立し、ノートブックファイルを に保存し Amazon S3 Control、Workspace を Git リポジトリにリンク AWS Secrets Manager しながら にアクセスできるようにするアクセス許可が含まれている必要があります。

(セッションポリシーの代わりに) Studio サービスロールを使用して、ノートブックファイルを保存するためのすべての Amazon S3 アクセス許可を定義し、 AWS Secrets Manager アクセス許可を定義します。

## Amazon EC2 または Amazon EKS で EMR Studio 用にサービスロールを作成する方法
<a name="emr-studio-service-role-instructions"></a>

1. [AWS 「 サービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」の手順に従って、次の信頼ポリシーを使用してサービスロールを作成します。
**重要**  
次の信頼ポリシーには、EMR Studio に付与するアクセス許可をアカウント内の特定のリソースに制限するための [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) グローバル条件キーが含まれています。そうすることで、[「混乱した代理」問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)から保護できます。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sts:AssumeRole"
         ],
         "Resource": "arn:aws:iam::123456789012:role/EMRStudioServiceRole",
         "Condition": {
           "StringEquals": {
             "aws:SourceAccount": "123456789012"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:elasticmapreduce:*:123456789012:*"
           }
         },
         "Sid": "AllowSTSAssumerole"
       }
     ]
   }
   ```

------

1. デフォルトのロールアクセス許可を削除します。次に、次のサンプル IAM アクセス許可ポリシーのアクセス許可を含めます。または、[EMR Studio サービスロールのアクセス許可](#emr-studio-service-role-permissions-table) を使用するカスタムポリシーを作成できます。
**重要**  
による Amazon EC2 タグベースのアクセスコントロールを EMR Studio と連携させるには、次のポリシーに示すように `ModifyNetworkInterfaceAttribute` API へのアクセスを設定する必要があります。
EMR Studio がサービス ロールを操作するには、次のステートメント `AllowAddingEMRTagsDuringDefaultSecurityGroupCreation` および `AllowAddingTagsDuringEC2ENICreation` を変更しないでください。
サンプルポリシーを使用するには、キー `"for-use-with-amazon-emr-managed-policies"` および値 `"true"` を使用して次のリソースにタグ付けする必要があります。  
EMR Studio の Amazon Virtual Private Cloud (VPC)。
Studio で使用する各サブネット。
カスタム EMR Studio セキュリティグループ。EMR Studio のプレビュー期間中に作成したセキュリティグループを引き続き使用する場合は、そのセキュリティグループにタグを付ける必要があります。
Studio ユーザーが Git リポジトリを Workspace にリンクするために使用する で保持 AWS Secrets Manager されているシークレット。
 AWS マネジメントコンソールの関連するリソース画面の **[Tag]** (タグ) タブを使用してリソースにタグを適用できます。

   該当する場合は、以下のポリシーの `"Resource":"*"` で `*` を変更して、ご使用のユースケースでステートメントがカバーする 1 つ以上のリソースの Amazon リソースネーム (ARN) を指定します。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowEMRReadOnlyActions",
         "Effect": "Allow",
         "Action": [
           "elasticmapreduce:ListInstances",
           "elasticmapreduce:DescribeCluster",
           "elasticmapreduce:ListSteps"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Sid": "AllowEC2ENIActionsWithEMRTags",
         "Effect": "Allow",
         "Action": [
           "ec2:CreateNetworkInterfacePermission",
           "ec2:DeleteNetworkInterface"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:network-interface/*"
         ],
         "Condition": {
           "StringEquals": {
             "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
           }
         }
       },
       {
         "Sid": "AllowEC2ENIAttributeAction",
         "Effect": "Allow",
         "Action": [
           "ec2:ModifyNetworkInterfaceAttribute"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:instance/*",
           "arn:aws:ec2:*:*:network-interface/*",
           "arn:aws:ec2:*:*:security-group/*"
         ]
       },
       {
         "Sid": "AllowEC2SecurityGroupActionsWithEMRTags",
         "Effect": "Allow",
         "Action": [
           "ec2:AuthorizeSecurityGroupEgress",
           "ec2:AuthorizeSecurityGroupIngress",
           "ec2:RevokeSecurityGroupEgress",
           "ec2:RevokeSecurityGroupIngress",
           "ec2:DeleteNetworkInterfacePermission"
         ],
         "Resource": [
           "*"
         ],
         "Condition": {
           "StringEquals": {
             "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
           }
         }
       },
       {
         "Sid": "AllowDefaultEC2SecurityGroupsCreationWithEMRTags",
         "Effect": "Allow",
         "Action": [
           "ec2:CreateSecurityGroup"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:security-group/*"
         ],
         "Condition": {
           "StringEquals": {
             "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
           }
         }
       },
       {
         "Sid": "AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags",
         "Effect": "Allow",
         "Action": [
           "ec2:CreateSecurityGroup"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:vpc/*"
         ],
         "Condition": {
           "StringEquals": {
             "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
           }
         }
       },
       {
         "Sid": "AllowAddingEMRTagsDuringDefaultSecurityGroupCreation",
         "Effect": "Allow",
         "Action": [
           "ec2:CreateTags"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:security-group/*"
         ],
         "Condition": {
           "StringEquals": {
             "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true",
             "ec2:CreateAction": "CreateSecurityGroup"
           }
         }
       },
       {
         "Sid": "AllowEC2ENICreationWithEMRTags",
         "Effect": "Allow",
         "Action": [
           "ec2:CreateNetworkInterface"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:network-interface/*"
         ],
         "Condition": {
           "StringEquals": {
             "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
           }
         }
       },
       {
         "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags",
         "Effect": "Allow",
         "Action": [
           "ec2:CreateNetworkInterface"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:subnet/*",
           "arn:aws:ec2:*:*:security-group/*"
         ],
         "Condition": {
           "StringEquals": {
             "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
           }
         }
       },
       {
         "Sid": "AllowAddingTagsDuringEC2ENICreation",
         "Effect": "Allow",
         "Action": [
           "ec2:CreateTags"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:network-interface/*"
         ],
         "Condition": {
           "StringEquals": {
             "ec2:CreateAction": "CreateNetworkInterface"
           }
         }
       },
       {
         "Sid": "AllowEC2ReadOnlyActions",
         "Effect": "Allow",
         "Action": [
           "ec2:DescribeSecurityGroups",
           "ec2:DescribeNetworkInterfaces",
           "ec2:DescribeTags",
           "ec2:DescribeInstances",
           "ec2:DescribeSubnets",
           "ec2:DescribeVpcs"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags",
         "Effect": "Allow",
         "Action": [
           "secretsmanager:GetSecretValue"
         ],
         "Resource": [
           "arn:aws:secretsmanager:*:*:secret:*"
         ],
         "Condition": {
           "StringEquals": {
             "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
           }
         }
       },
       {
         "Sid": "AllowWorkspaceCollaboration",
         "Effect": "Allow",
         "Action": [
           "iam:GetUser",
           "iam:GetRole",
           "iam:ListUsers",
           "iam:ListRoles",
           "sso:GetManagedApplicationInstance",
           "sso-directory:SearchUsers"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. EMR Studio の Amazon S3 の場所への読み取りおよび書き込みアクセス権をサービスロールに付与します。次の最小アクセス許可セットを使用します。詳細は、「[Amazon S3: S3 バケットのオブジェクトへの読み取りおよび書き込みアクセスをプログラムによりコンソールで許可する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_rw-bucket-console.html)」の例を参照してください。

   ```
   "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"
   ```

1. Git シークレットへのアクセスをユーザーレベルで制御する場合は、EMR Studio **ユーザーロールポリシー**で `secretsmanager:GetSecretValue` へタグベースのアクセス許可を追加し、EMR Studio **サービスロールポリシー**から `secretsmanager:GetSecretValue` ポリシーへのアクセス許可を削除します。きめ細かいユーザーのアクセス許可の設定方法の詳細については、「[EMR Studio ユーザーのアクセス許可ポリシーの作成](emr-studio-user-permissions.md#emr-studio-permissions-policies)」を参照してください。

## EMR Serverless の最小限のサービスロール
<a name="emr-studio-service-role-serverless"></a>

EMR Studio ノートブックを介して EMR Serverless でインタラクティブなワークロードを実行する場合は、前のセクション ([Amazon EC2 または Amazon EKS で EMR Studio 用にサービスロールを作成する方法](#emr-studio-service-role-instructions)) で EMR Studio の設定に使用したのと同じ信頼ポリシーを使用します。

IAM ポリシーでは、実用最小限のポリシーには次のようなアクセス許可があります。EMR Studio と Workspace を設定するときに使用する予定のバケットの名前で `bucket-name` を更新します。EMR Studio はこのバケットを使用して Studio 内の Workspace とノートブックファイルをバックアップします。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ObjectActions",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::bucket-name/*"
      ]
    },
    {
      "Sid": "BucketActions",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetEncryptionConfiguration"
      ],
      "Resource": [
        "arn:aws:s3:::bucket-name"
      ]
    }
  ]
}
```

------

暗号化された Amazon S3 バケットを使用する場合は、ポリシーに以下のアクセス許可を追加します。

```
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:ReEncryptFrom",
"kms:ReEncryptTo",
"kms:DescribeKey"
```

## EMR Studio サービスロールのアクセス許可
<a name="emr-studio-service-role-permissions-table"></a>

次の表に、EMR Studio がサービスロールを使用して実行するオペレーションと、各オペレーションに必要な IAM アクションを示します。


| 運用 | アクション | 
| --- | --- | 
| Workspace と EMR クラスターの間にセキュアネットワークチャネルを確立し、必要なクリーンアップアクションを実行する。 |  <pre>"ec2:CreateNetworkInterface", <br />"ec2:CreateNetworkInterfacePermission", <br />"ec2:DeleteNetworkInterface", <br />"ec2:DeleteNetworkInterfacePermission", <br />"ec2:DescribeNetworkInterfaces", <br />"ec2:ModifyNetworkInterfaceAttribute", <br />"ec2:AuthorizeSecurityGroupEgress", <br />"ec2:AuthorizeSecurityGroupIngress", <br />"ec2:CreateSecurityGroup",<br />"ec2:DescribeSecurityGroups", <br />"ec2:RevokeSecurityGroupEgress",<br />"ec2:DescribeTags",<br />"ec2:DescribeInstances",<br />"ec2:DescribeSubnets",<br />"ec2:DescribeVpcs",<br />"elasticmapreduce:ListInstances", <br />"elasticmapreduce:DescribeCluster", <br />"elasticmapreduce:ListSteps"</pre>  | 
| に保存されている Git 認証情報 AWS Secrets Manager を使用して、Git リポジトリを Workspace にリンクします。 |  <pre>"secretsmanager:GetSecretValue"</pre>  | 
| セキュアネットワークチャネルの設定中に EMR Studio が作成するネットワークインターフェイスとデフォルトのセキュリティグループに AWS タグを適用します。詳細については、「[AWS リソースのタグ付け](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)」を参照してください。 |  <pre>"ec2:CreateTags"</pre>  | 
| ノートブックファイルとメタデータにアクセスする、それらを Amazon S3 にアップロードする。 |  <pre>"s3:PutObject",<br />"s3:GetObject",<br />"s3:GetEncryptionConfiguration",<br />"s3:ListBucket",<br />"s3:DeleteObject" </pre> 暗号化された Amazon S3 バケットを使用する場合は、以下のアクセス許可を含めます。 <pre>"kms:Decrypt",<br />"kms:GenerateDataKey",<br />"kms:ReEncryptFrom",<br />"kms:ReEncryptTo",<br />"kms:DescribeKey"</pre>  | 
| Workspace コラボレーションを有効にして設定します。 |  <pre>"iam:GetUser",<br />"iam:GetRole",<br />"iam:ListUsers",<br />"iam:ListRoles",<br />"sso:GetManagedApplicationInstance",<br />"sso-directory:SearchUsers",<br />"sso:DescribeApplication",<br />"sso:DescribeInstance"</pre>  | 
| [ でカスタマーマネージドキー (CMK) を使用して EMR Studio ワークスペースノートブックとファイルを暗号化する AWS Key Management Service](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-workspace-storage-encryption)  |  <pre>"kms:Decrypt",<br />"kms:GenerateDataKey",<br />"kms:ReEncryptFrom",<br />"kms:ReEncryptTo",<br />"kms:DescribeKey"</pre>  | 