Membuat peran layanan EMR Studio - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Membuat peran layanan EMR Studio

Tentang peran layanan EMR Studio

Setiap EMR Studio menggunakan IAM peran dengan izin yang memungkinkan Studio berinteraksi dengan AWS layanan lain. Peran layanan ini harus menyertakan izin yang memungkinkan EMR Studio membuat saluran jaringan aman antara Workspaces dan cluster, menyimpan file notebook, dan mengakses AWS Secrets Manager saat menautkan Workspace ke repositori Git. Amazon S3 Control

Gunakan peran layanan Studio (bukan kebijakan sesi) untuk menentukan semua izin akses Amazon S3 untuk menyimpan file notebook, dan untuk menentukan AWS Secrets Manager izin akses.

Cara membuat peran layanan untuk EMR Studio di Amazon EC2 atau Amazon EKS

  1. Ikuti petunjuk dalam Membuat peran untuk mendelegasikan izin ke AWS layanan guna membuat peran layanan dengan kebijakan kepercayaan berikut.

    penting

    Kebijakan kepercayaan berikut mencakup aws:SourceArndan kunci kondisi aws:SourceAccountglobal untuk membatasi izin yang Anda berikan kepada EMR Studio ke sumber daya tertentu di akun Anda. Melakukannya dapat melindungi Anda dari masalah wakil yang membingungkan.

    { "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>:*" } } } ] }
  2. Hapus izin peran default. Kemudian, sertakan izin dari contoh kebijakan IAM izin berikut. Atau, Anda dapat membuat kebijakan khusus yang menggunakanEMRIzin peran layanan studio.

    penting
    • Agar kontrol akses EC2 berbasis tag Amazon berfungsi dengan EMR Studio, Anda harus menyetel akses untuk ModifyNetworkInterfaceAttribute API seperti yang ditunjukkan kebijakan berikut.

    • Agar EMR Studio dapat bekerja dengan peran layanan, Anda tidak boleh mengubah pernyataan berikut: AllowAddingEMRTagsDuringDefaultSecurityGroupCreation danAllowAddingTagsDuringEC2ENICreation.

    • Untuk menggunakan kebijakan contoh, Anda harus menandai sumber daya berikut dengan kunci "for-use-with-amazon-emr-managed-policies" dan nilai"true".

      • Amazon Virtual Private Cloud (VPC) Anda untuk EMR Studio.

      • Setiap subnet yang ingin Anda gunakan dengan Studio.

      • Setiap grup keamanan EMR Studio kustom. Anda harus menandai grup keamanan apa pun yang Anda buat selama periode pratinjau EMR Studio jika ingin terus menggunakannya.

      • Rahasia yang disimpan di Studio AWS Secrets Manager yang digunakan pengguna untuk menautkan repositori Git ke Workspace.

      Anda dapat menerapkan tag ke sumber daya menggunakan tab Tag pada layar sumber daya yang relevan di AWS Management Console.

    Jika berlaku, ubah kebijakan * "Resource":"*" dalam kebijakan berikut untuk menentukan Nama Sumber Daya Amazon (ARN) sumber daya yang dicakup pernyataan untuk kasus penggunaan Anda.

    { "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": "*" } ] }
  3. Berikan akses baca dan tulis peran layanan Anda ke lokasi Amazon S3 untuk EMR Studio. Gunakan set minimum izin berikut. Untuk informasi lebih lanjut, lihat contoh Amazon S3: Memungkinkan akses baca dan tulis ke objek dalam Bucket S3, secara terprogram dan di konsol.

    "s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

    Jika Anda mengenkripsi bucket Amazon S3, sertakan izin berikut untuk. AWS Key Management Service

    "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
  4. Jika Anda ingin mengontrol akses ke rahasia Git di tingkat pengguna, tambahkan izin berbasis tag ke secretsmanager:GetSecretValue dalam kebijakan peran pengguna EMR Studio, dan hapus izin untuk secretsmanager:GetSecretValue kebijakan dari kebijakan peran layanan EMR Studio. Untuk informasi selengkapnya tentang menyetel izin pengguna berbutir halus, lihat. Membuat kebijakan izin untuk pengguna EMR Studio

Peran layanan minimum untuk Tanpa EMR Server

Jika Anda ingin menjalankan beban kerja interaktif dengan EMR Tanpa Server melalui buku catatan EMR Studio, gunakan kebijakan kepercayaan yang sama yang Anda gunakan untuk menyiapkan EMR Studio di bagian sebelumnya. Cara membuat peran layanan untuk EMR Studio di Amazon EC2 atau Amazon EKS

Untuk IAM kebijakan Anda, kebijakan minimum yang layak memiliki izin sebagai berikut. Perbarui bucket-name dengan nama bucket yang akan digunakan saat mengonfigurasi EMR Studio dan Workspace. EMRStudio menggunakan bucket untuk mencadangkan file Workspaces dan notebook di Studio Anda.

{ "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"] } ] }

Jika Anda berencana menggunakan bucket Amazon S3 terenkripsi, tambahkan izin berikut pada kebijakan Anda:

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

EMRIzin peran layanan studio

Tabel berikut mencantumkan operasi yang dilakukan EMR Studio menggunakan peran layanan, beserta IAM tindakan yang diperlukan untuk setiap operasi.

Operasi Tindakan
Buat saluran jaringan yang aman antara Workspace dan EMR cluster, dan lakukan tindakan pembersihan yang diperlukan.
"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"
Gunakan kredenal Git yang disimpan untuk menautkan repositori Git AWS Secrets Manager ke Workspace.
"secretsmanager:GetSecretValue"
Terapkan AWS tag ke antarmuka jaringan dan grup keamanan default yang dibuat EMR Studio saat menyiapkan saluran jaringan aman. Untuk informasi lebih lanjut, lihat Menandai sumber daya AWS.
"ec2:CreateTags"
Mengakses atau mengunggah file notebook dan metadata ke Amazon S3.
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

Jika Anda menggunakan bucket Amazon S3 terenkripsi, sertakan izin berikut.

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
Aktifkan dan konfigurasikan kolaborasi Workspace.
"iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers"
Enkripsi buku catatan dan file ruang kerja EMR Studio menggunakan kunci terkelola pelanggan () dengan CMK AWS Key Management Service
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"