View a markdown version of this page

Konfigurasikan izin pengguna EMR Studio untuk Amazon EC2 atau Amazon EKS - Amazon EMR

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

Konfigurasikan izin pengguna EMR Studio untuk Amazon EC2 atau Amazon EKS

Anda harus mengonfigurasi kebijakan izin pengguna untuk Amazon EMR Studio sehingga Anda dapat mengatur izin pengguna dan grup yang berbutir halus. Untuk informasi tentang cara kerja izin pengguna di EMR Studio, lihat Kontrol akses diCara Kerja Amazon EMR Studio.

catatan

Izin yang tercakup dalam bagian ini tidak memberlakukan kontrol akses data. Untuk mengelola akses ke kumpulan data input, Anda harus mengonfigurasi izin untuk cluster yang digunakan Studio Anda. Untuk informasi selengkapnya, lihat Keamanan di Amazon EMR.

Membuat peran pengguna EMR Studio untuk mode otentikasi Pusat Identitas IAM

Anda harus membuat peran pengguna EMR Studio saat menggunakan mode otentikasi Pusat Identitas IAM.

Untuk membuat peran pengguna untuk EMR Studio
  1. Ikuti petunjuk dalam Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan AWS Identity and Access Management Pengguna untuk membuat peran pengguna.

    Saat Anda membuat peran, gunakan kebijakan hubungan kepercayaan berikut.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSTSAssumerole", "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
  2. Hapus izin dan kebijakan peran default.

  3. Sebelum Anda menetapkan pengguna dan grup ke Studio, lampirkan kebijakan sesi EMR Studio Anda ke peran pengguna. Untuk petunjuk tentang cara membuat kebijakan sesi, lihatBuat kebijakan izin untuk pengguna EMR Studio.

Buat kebijakan izin untuk pengguna EMR Studio

Lihat bagian berikut untuk membuat kebijakan izin untuk EMR Studio.

catatan

Untuk mengatur izin akses Amazon S3 untuk menyimpan file buku catatan, dan untuk mengatur izin AWS Secrets Manager akses untuk membaca rahasia saat Anda menautkan Ruang Kerja ke repositori Git, gunakan peran layanan EMR Studio.

Buat kebijakan izin

Buat satu atau beberapa kebijakan izin IAM yang menentukan tindakan apa yang dapat dilakukan pengguna di Studio Anda. Misalnya, Anda dapat membuat tiga kebijakan terpisah untuk tipe pengguna Studio dasar , menengah, dan lanjutan dengan kebijakan contoh di halaman ini.

Untuk rincian setiap operasi Studio yang mungkin dilakukan pengguna, dan tindakan IAM minimum yang diperlukan untuk melakukan setiap operasi, lihatAWS Identity and Access Management izin untuk pengguna EMR Studio. Untuk langkah-langkah membuat kebijakan, lihat Membuat kebijakan IAM di Panduan Pengguna IAM.

Kebijakan izin Anda harus menyertakan pernyataan berikut.

{ "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow", "Action": "secretsmanager:TagResource", "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::*:role/your-emr-studio-service-role" ], "Effect": "Allow" }

Tetapkan kepemilikan untuk kolaborasi Workspace

Kolaborasi ruang kerja memungkinkan beberapa pengguna bekerja secara bersamaan di Ruang Kerja yang sama dan dapat dikonfigurasi dengan panel Kolaborasi di UI Ruang Kerja. Untuk melihat dan menggunakan panel Kol aborasi, pengguna harus memiliki izin berikut. Setiap pengguna dengan izin ini dapat melihat dan menggunakan panel Kol aborasi.

"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"

Untuk membatasi akses ke panel Kol aborasi, Anda dapat menggunakan kontrol akses berbasis tag. Saat pengguna membuat Ruang Kerja, EMR Studio menerapkan tag default dengan kunci yang creatorUserId nilainya adalah ID pengguna yang membuat Ruang Kerja.

catatan

EMR Studio menambahkan creatorUserId tag ke Ruang Kerja yang dibuat setelah 16 November 2021. Untuk membatasi siapa yang dapat mengonfigurasi kolaborasi untuk ruang kerja yang Anda buat sebelum tanggal ini, sebaiknya tambahkan creatorUserId tag secara manual ke Ruang Kerja, lalu gunakan kontrol akses berbasis tag dalam kebijakan izin pengguna Anda.

Pernyataan contoh berikut memungkinkan pengguna mengonfigurasi kolaborasi untuk Workspace apa pun dengan kunci creatorUserId tag yang nilainya cocok dengan ID pengguna (ditunjukkan oleh variabel kebijakanaws:userId). Dengan kata lain, pernyataan memungkinkan pengguna mengonfigurasi kolaborasi untuk Workspace yang mereka buat. Untuk mempelajari lebih lanjut tentang variabel kebijakan, lihat Elemen kebijakan IAM: Variabel dan tag di Panduan Pengguna IAM.

{ "Sid": "UserRolePermissionsForCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userid}" } } }

Buat kebijakan rahasia Git tingkat pengguna

Untuk menggunakan izin tingkat pengguna

EMR Studio secara otomatis menambahkan for-use-with-amazon-emr-managed-user-policies tag saat membuat rahasia Git. Jika Anda ingin mengontrol akses ke rahasia Git di tingkat pengguna, tambahkan izin berbasis tag ke kebijakan peran pengguna EMR Studio dengan secretsmanager:GetSecretValue seperti yang ditunjukkan pada Untuk transisi dari izin tingkat layanan ke izin tingkat pengguna bagian di bawah ini.

Jika Anda memiliki izin yang ada untuk secretsmanager:GetSecretValue kebijakan peran layanan EMR Studio, Anda harus menghapus izin tersebut.

Untuk transisi dari izin tingkat layanan ke izin tingkat pengguna

catatan

for-use-with-amazon-emr-managed-user-policiesTag memastikan bahwa izin dari Langkah 1 di bawah ini memberikan akses pembuat ruang kerja ke rahasia Git. Namun, jika Anda menautkan repositori Git sebelum 1 September 2023, maka rahasia Git yang sesuai akan ditolak aksesnya karena for-use-with-amazon-emr-managed-user-policies tag tidak diterapkan. Untuk menerapkan izin tingkat pengguna, Anda harus membuat ulang rahasia lama dari JupyterLab dan menautkan repositori Git yang sesuai lagi.

Untuk informasi selengkapnya tentang variabel kebijakan, lihat Elem en kebijakan IAM: Variabel dan tag di Panduan Pengguna IAM.

  1. Tambahkan izin berikut ke kebijakan peran pengguna EMR Studio. Ini menggunakan for-use-with-amazon-emr-managed-user-policies kunci dengan nilai"${aws:userid}".

    { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/for-use-with-amazon-emr-managed-user-policies": "${aws:userid}" } } }
  2. Jika ada, hapus izin berikut dari kebijakan peran layanan EMR Studio. Karena kebijakan peran layanan berlaku untuk semua rahasia yang ditentukan oleh setiap pengguna, Anda hanya perlu melakukan ini satu kali.

    { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }

Untuk menggunakan izin tingkat layanan

Mulai 1 September 2023, EMR Studio secara otomatis menambahkan for-use-with-amazon-emr-managed-user-policies tag untuk kontrol akses tingkat pengguna. Karena ini adalah kemampuan tambahan, Anda dapat terus menggunakan akses tingkat layanan yang tersedia melalui GetSecretValue izin di peran layanan EMR Studio.

Untuk rahasia yang dibuat sebelum 1 September 2023, EMR Studio tidak menambahkan for-use-with-amazon-emr-managed-user-policies tag. Untuk tetap menggunakan izin tingkat layanan, cukup pertahankan peran layanan EMR Studio Anda yang ada dan izin peran pengguna. Namun, untuk membatasi siapa yang dapat mengakses rahasia individu, sebaiknya ikuti langkah-langkah untuk menambahkan for-use-with-amazon-emr-managed-user-policies tag Untuk menggunakan izin tingkat pengguna ke rahasia secara manual, lalu gunakan kontrol akses berbasis tag dalam kebijakan izin pengguna.

Untuk informasi selengkapnya tentang variabel kebijakan, lihat Elem en kebijakan IAM: Variabel dan tag di Panduan Pengguna IAM.

Lampirkan kebijakan izin ke identitas IAM Anda

Tabel berikut merangkum identitas IAM mana yang Anda lampirkan kebijakan izin, tergantung pada mode otentikasi EMR Studio Anda. Untuk petunjuk tentang cara melampirkan kebijakan, lihat Men ambahkan dan menghapus izin identitas IAM.

Jika Anda menggunakan... Lampirkan kebijakan ke...
Autentikasi IAM Identitas IAM Anda (pengguna, grup pengguna, atau peran). Misalnya, Anda dapat melampirkan kebijakan izin ke pengguna di Akun AWS.
Federasi IAM dengan penyedia identitas eksternal (IdP)

Peran atau peran IAM yang Anda buat untuk IdP eksternal Anda. Misalnya, IAM untuk federasi SAML 2.0.

EMR Studio menggunakan izin yang Anda lampirkan ke peran IAM untuk pengguna dengan akses federasi ke Studio.

Pusat Identitas IAM Peran pengguna Amazon EMR Studio Anda.

Contoh kebijakan pengguna

Kebijakan pengguna dasar berikut memungkinkan sebagian besar tindakan EMR Studio, tetapi tidak mengizinkan pengguna membuat cluster Amazon EMR baru.

penting

Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl izin, yang harus Anda izinkan untuk pengguna saat menggunakan mode otentikasi IAM. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke EMR Studio.

Kebijakan contoh mencakup Condition elemen untuk menerapkan kontrol akses berbasis tag (TBAC) sehingga Anda dapat menggunakan kebijakan dengan peran layanan contoh untuk EMR Studio. Untuk informasi selengkapnya, lihat Membuat peran layanan EMR Studio.

JSON
{ "Version":"2012-10-17", "Statement": [ { "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": "AllowSecretManagerListSecrets", "Action": [ "secretsmanager:ListSecrets" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:emr-studio-*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow", "Action": [ "secretsmanager:TagResource" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:emr-studio-*" ] }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/your-emr-studio-service-role>" ], "Effect": "Allow" }, { "Sid": "AllowS3ListAndLocationPermissions", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ], "Effect": "Allow" }, { "Sid": "AllowS3ReadOnlyAccessToLogs", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::aws-logs-aws-111122223333>-region>/elasticmapreduce/*" ], "Effect": "Allow" }, { "Sid": "AllowConfigurationForWorkspaceCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": [ "*" ], "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } }, { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": [ "*" ] }, { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": [ "*" ] } ] }

Kebijakan pengguna menengah berikut memungkinkan sebagian besar tindakan EMR Studio, dan memungkinkan pengguna membuat cluster Amazon EMR baru menggunakan templat cluster.

penting

Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl izin, yang harus Anda izinkan untuk pengguna saat menggunakan mode otentikasi IAM. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke EMR Studio.

Kebijakan contoh mencakup Condition elemen untuk menerapkan kontrol akses berbasis tag (TBAC) sehingga Anda dapat menggunakan kebijakan dengan peran layanan contoh untuk EMR Studio. Untuk informasi selengkapnya, lihat Membuat peran layanan EMR Studio.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowEMRBasicActions", "Action": [ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateRepository", "elasticmapreduce:DescribeRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowEMRContainersBasicActions", "Action": [ "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeManagedEndpoint", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeJobRun", "emr-containers:ListJobRuns" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowRetrievingManagedEndpointCredentials", "Effect": "Allow", "Action": [ "emr-containers:GetManagedEndpointSessionCredentials" ], "Resource": [ "arn:aws:emr-containers:us-west-1:123456789012:/virtualclusters/virtual-cluster-id/endpoints/managed-endpoint-id" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::123456789012:role/emr-on-eks-execution-role" ] } } }, { "Sid": "AllowSecretManagerListSecrets", "Action": [ "secretsmanager:ListSecrets" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:emr-studio-*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow", "Action": [ "secretsmanager:TagResource" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:emr-studio-*" ] }, { "Sid": "AllowClusterTemplateRelatedIntermediateActions", "Action": [ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:ListLaunchPaths", "servicecatalog:DescribeRecord", "cloudformation:DescribeStackResources" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/your-emr-studio-service-role" ], "Effect": "Allow" }, { "Sid": "AllowS3ListAndLocationPermissions", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ], "Effect": "Allow" }, { "Sid": "AllowS3ReadOnlyAccessToLogs", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::aws-logs-123456789012-us-east-1/elasticmapreduce/*" ], "Effect": "Allow" }, { "Sid": "AllowConfigurationForWorkspaceCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": [ "*" ], "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } }, { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": [ "*" ] }, { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": [ "*" ] }, { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningServerlessJob", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/serverless-runtime-role" ], "Effect": "Allow" } ] }

Kebijakan pengguna tingkat lanjut berikut memungkinkan semua tindakan EMR Studio, dan memungkinkan pengguna membuat cluster Amazon EMR baru menggunakan templat cluster atau dengan menyediakan konfigurasi cluster.

penting

Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl izin, yang harus Anda izinkan untuk pengguna saat menggunakan mode otentikasi IAM. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke EMR Studio.

Kebijakan contoh mencakup Condition elemen untuk menerapkan kontrol akses berbasis tag (TBAC) sehingga Anda dapat menggunakan kebijakan dengan peran layanan contoh untuk EMR Studio. Untuk informasi selengkapnya, lihat Membuat peran layanan EMR Studio.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowEMRBasicActions", "Action": [ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateRepository", "elasticmapreduce:DescribeRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowEMRContainersBasicActions", "Action": [ "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeManagedEndpoint", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeJobRun", "emr-containers:ListJobRuns" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowRetrievingManagedEndpointCredentials", "Effect": "Allow", "Action": [ "emr-containers:GetManagedEndpointSessionCredentials" ], "Resource": [ "arn:aws:emr-containers:*:123456789012:/virtualclusters/virtual-cluster-id/endpoints/managed-endpoint-id" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::123456789012:role/emr-on-eks-execution-role" ] } } }, { "Sid": "AllowSecretManagerListSecrets", "Action": [ "secretsmanager:ListSecrets" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:emr-studio-*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow", "Action": [ "secretsmanager:TagResource" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:emr-studio-*" ] }, { "Sid": "AllowClusterTemplateRelatedIntermediateActions", "Action": [ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:ListLaunchPaths", "servicecatalog:DescribeRecord", "cloudformation:DescribeStackResources" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowEMRCreateClusterAdvancedActions", "Action": [ "elasticmapreduce:RunJobFlow" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/your-emr-studio-service-role", "arn:aws:iam::*:role/EMR_DefaultRole_V2", "arn:aws:iam::*:role/EMR_EC2_DefaultRole" ], "Effect": "Allow" }, { "Sid": "AllowS3ListAndLocationPermissions", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ], "Effect": "Allow" }, { "Sid": "AllowS3ReadOnlyAccessToLogs", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::aws-logs-123456789012-us-east-1/elasticmapreduce/*" ], "Effect": "Allow" }, { "Sid": "AllowConfigurationForWorkspaceCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": [ "*" ], "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } }, { "Sid": "SageMakerDataWranglerForEMRStudio", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:ListUserProfiles" ], "Resource": [ "*" ] }, { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": [ "*" ] }, { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": [ "*" ] }, { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningServerlessJob", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/serverless-runtime-role" ], "Effect": "Allow" }, { "Sid": "AllowCodeWhisperer", "Effect": "Allow", "Action": [ "codewhisperer:GenerateRecommendations" ], "Resource": [ "*" ] }, { "Sid": "AllowAthenaSQL", "Action": [ "athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetQueryExecution", "athena:GetQueryRuntimeStatistics", "athena:GetQueryResults", "athena:ListQueryExecutions", "athena:BatchGetQueryExecution", "athena:GetNamedQuery", "athena:ListNamedQueries", "athena:BatchGetNamedQuery", "athena:UpdateNamedQuery", "athena:DeleteNamedQuery", "athena:ListDataCatalogs", "athena:GetDataCatalog", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata", "athena:ListWorkGroups", "athena:GetWorkGroup", "athena:CreateNamedQuery", "athena:GetPreparedStatement", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "kms:ListAliases", "kms:ListKeys", "kms:DescribeKey", "lakeformation:GetDataAccess", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutBucketPublicAccessBlock", "s3:ListAllMyBuckets" ], "Resource": [ "*" ], "Effect": "Allow" } ] }

Kebijakan pengguna berikut berisi izin pengguna minimum yang diperlukan untuk menggunakan aplikasi interaktif EMR Serverless dengan Ruang Kerja EMR Studio.

Dalam kebijakan contoh ini yang memiliki izin pengguna untuk aplikasi interaktif Tanpa Server EMR dengan EMR Studio, ganti placeholder untuk serverless-runtime-role dan emr-studio-service-role dengan peran layanan EMR Studio yang benar dan peran runtime EMR Serverless. https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowEMRBasicActions", "Action": [ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:UpdateStudio", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateStudio", "elasticmapreduce:DescribeStudio", "elasticmapreduce:DeleteStudio", "elasticmapreduce:ListStudios", "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningEMRServerlessJob", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/serverless-runtime-role" ], "Effect": "Allow" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/emr-studio-service-role" ], "Effect": "Allow" }, { "Sid": "AllowS3ListAndGetPermissions", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::*" ], "Effect": "Allow" }, { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": [ "*" ] }, { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": [ "*" ] } ] }

AWS Identity and Access Management izin untuk pengguna EMR Studio

Tabel berikut mencakup setiap operasi Amazon EMR Studio yang mungkin dilakukan pengguna, dan mencantumkan tindakan IAM minimum yang diperlukan untuk melakukan operasi tersebut. Anda mengizinkan tindakan ini dalam kebijakan izin IAM Anda (saat Anda menggunakan otentikasi IAM) atau dalam kebijakan sesi peran pengguna Anda (saat Anda menggunakan otentikasi Pusat Identitas IAM) untuk EMR Studio.

Tabel ini juga menampilkan operasi yang diizinkan di setiap contoh kebijakan izin untuk EMR Studio. Untuk informasi selengkapnya tentang contoh kebijakan izin, lihatBuat kebijakan izin untuk pengguna EMR Studio.

Tindakan Dasar Menengah Lanjutan Tindakan terkait
Membuat dan menghapus Workspace Ya Ya Ya
"elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:DeleteEditor"
Lihat panel Kol aborasi, aktifkan kolaborasi Workspace, dan tambahkan kolaborator. Untuk informasi selengkapnya, lihat Meng atur kepemilikan untuk kolaborasi Workspace. Ya Ya Ya
"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"
Lihat daftar bucket Amazon S3 Control penyimpanan di akun yang sama dengan Studio saat membuat cluster EMR baru, dan mengakses log kontainer saat menggunakan UI web untuk men-debug aplikasi Ya Ya Ya
"s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject"
Mengakses Workspace Ya Ya Ya
"elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:OpenEditorInConsole"
Melampirkan atau melepaskan klaster Amazon EMR yang ada yang terkait dengan Workspace Ya Ya Ya
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions"
Melampirkan atau melepaskan Amazon EMR pada klaster EKS Ya Ya Ya
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeManagedEndpoint", "emr-containers:GetManagedEndpointSessionCredentials"
Melampirkan atau lepaskan aplikasi Tanpa Server EMR yang terkait dengan Workspace Tidak Ya Ya
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:ListApplications", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints", "iam:PassRole"

Iz PassRole in diperlukan untuk meneruskan peran runtime pekerjaan EMR Serverless. Untuk informasi selengkapnya, lihat Peran runtime pekerjaan di Panduan Pengguna Tanpa Server Amazon EMR.

Men-debug pekerjaan Amazon EMR pada EC2 dengan antarmuka pengguna aplikasi persisten Ya Ya Ya
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:DescribeCluster", "s3:ListBucket", "s3:GetObject"
Men-debug pekerjaan Amazon EMR pada EC2 dengan antarmuka pengguna aplikasi di klaster Ya Ya Ya
"elasticmapreduce:GetOnClusterAppUIPresignedURL"
Men-debug pekerjaan Amazon EMR pada EKS yang berjalan menggunakan Spark History Server Ya Ya Ya
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListJobRuns", "emr-containers:DescribeJobRun", "s3:ListBucket", "s3:GetObject"
Membuat dan menghapus repositori Git Ya Ya Ya
"elasticmapreduce:CreateRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository", "secretsmanager:CreateSecret", "secretsmanager:ListSecrets", "secretsmanager:TagResource"
Menautkan dan menghapus tautan repositori Git Ya Ya Ya
"elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository"
Membuat klaster baru dari templat klaster yang telah ditetapkan Tidak Ya Ya
"servicecatalog:SearchProducts", "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:DescribeRecord", "servicecatalog:ListLaunchPaths", "cloudformation:DescribeStackResources", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Menyediakan konfigurasi cluster untuk membuat cluster baru. Tidak Tidak Ya
"elasticmapreduce:RunJobFlow", "iam:PassRole", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Tetapkan pengguna ke Studio saat Anda menggunakan mode otentikasi IAM. Tidak Tidak Tidak
"elasticmapreduce:CreateStudioPresignedUrl"
Jelaskan objek jaringan. Ya Ya Ya
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": [ "*" ] } ] }
Daftar peran IAM. Ya Ya Ya
JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": [ "*" ] } ] }
Hubungkan ke EMR Studio dari Amazon SageMaker AI Studio dan gunakan antarmuka visual Data Wrangler. Tidak Tidak Ya
"sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:ListUserProfiles"
Gunakan Amazon CodeWhisperer di EMR Studio Anda. Tidak Tidak Ya
"codewhisperer:GenerateRecommendations"
Akses editor Amazon Athena SQL dari EMR Studio Anda. Daftar ini mungkin tidak menyertakan semua izin yang Anda perlukan untuk menggunakan semua fitur Athena. Untuk daftar terbaru, lihat kebijakan akses penuh Athena. Tidak Tidak Ya
"athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetQueryExecution", "athena:GetQueryRuntimeStatistics", "athena:GetQueryResults", "athena:ListQueryExecutions", "athena:BatchGetQueryExecution", "athena:GetNamedQuery", "athena:ListNamedQueries", "athena:BatchGetNamedQuery", "athena:UpdateNamedQuery", "athena:DeleteNamedQuery", "athena:ListDataCatalogs", "athena:GetDataCatalog", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata", "athena:ListWorkGroups", "athena:GetWorkGroup", "athena:CreateNamedQuery", "athena:GetPreparedStatement", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "kms:ListAliases", "kms:ListKeys", "kms:DescribeKey", "lakeformation:GetDataAccess", "s3:GetBucketLocation", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutBucketPublicAccessBlock", "s3:ListAllMyBuckets"