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 menyetel 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 set data input, Anda harus mengonfigurasi izin untuk klaster yang digunakan Studio Anda. Untuk informasi selengkapnya, lihat Keamanan di Amazon EMR.
Membuat peran pengguna EMR Studio untuk mode autentikasi Pusat IAM Identitas
Anda harus membuat peran pengguna EMR Studio saat menggunakan mode autentikasi Pusat IAM Identitas.
Untuk membuat peran pengguna untuk EMR Studio
-
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.
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
-
Hapus izin dan kebijakan peran default.
-
Sebelum menetapkan pengguna dan grup ke Studio, lampirkan kebijakan sesi EMR Studio Anda ke peran pengguna. Untuk petunjuk tentang cara membuat kebijakan sesi, lihatMembuat kebijakan izin untuk pengguna EMR Studio.
Membuat kebijakan izin untuk pengguna EMR Studio
Lihat bagian berikut untuk membuat kebijakan izin untuk EMR Studio.
Topik
catatan
Untuk menyetel izin akses Amazon S3 untuk menyimpan file notebook, dan untuk menetapkan izin AWS Secrets Manager akses untuk membaca rahasia saat Anda menautkan Workspaces ke repositori Git, gunakan peran layanan Studio. EMR
Buat kebijakan izin
Buat satu atau beberapa kebijakan IAM izin 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 contoh kebijakan di halaman ini.
Untuk rincian setiap operasi Studio yang mungkin dilakukan pengguna, dan IAM tindakan minimum yang diperlukan untuk melakukan setiap operasi, lihatAWS Identity and Access Management izin untuk pengguna EMR Studio. Untuk langkah-langkah untuk membuat kebijakan, lihat Membuat IAM kebijakan di Panduan IAM Pengguna.
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 Workspace yang sama dan dapat dikonfigurasi dengan panel Kolaborasi di UI Workspace. Untuk melihat dan menggunakan panel Kolaborasi, pengguna harus memiliki izin berikut. Setiap pengguna dengan izin ini dapat melihat dan menggunakan panel Kolaborasi.
"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"
Untuk membatasi akses ke panel Kolaborasi, Anda dapat menggunakan kontrol akses berbasis tag. Saat pengguna membuat Workspace, EMR Studio menerapkan tag default dengan kunci creatorUserId
yang nilainya adalah ID pengguna yang membuat Workspace.
catatan
EMRStudio menambahkan creatorUserId
tag ke Ruang Kerja yang dibuat setelah 16 November 2021. Untuk membatasi siapa saja 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.
Pernyataan contoh berikut memungkinkan pengguna mengonfigurasi kolaborasi untuk Workspace apa pun dengan kunci tag creatorUserId
yang nilainya cocok dengan ID pengguna (ditunjukkan oleh variabel kebijakanaws:userId
). Dengan kata lain, pernyataan tersebut memungkinkan pengguna mengonfigurasi kolaborasi untuk Workspaces yang mereka buat. Untuk mempelajari lebih lanjut tentang variabel kebijakan, lihat elemen IAM kebijakan: Variabel dan tag di Panduan IAM Pengguna.
{ "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
Topik
Untuk menggunakan izin tingkat pengguna
EMRStudio 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 beralih dari izin tingkat layanan ke izin tingkat pengguna bagian di bawah ini.
Jika Anda memiliki izin yang ada secretsmanager:GetSecretValue
dalam kebijakan peran layanan EMR Studio, Anda harus menghapus izin tersebut.
Untuk beralih dari izin tingkat layanan ke izin tingkat pengguna
catatan
for-use-with-amazon-emr-managed-user-policies
Tag memastikan bahwa izin dari Langkah 1 di bawah ini memberikan pencipta ruang kerja akses ke rahasia Git. Namun, jika Anda menautkan repositori Git sebelum 1 September 2023, maka rahasia Git yang sesuai akan ditolak aksesnya karena tag tersebut for-use-with-amazon-emr-managed-user-policies
tidak diterapkan. Untuk menerapkan izin tingkat pengguna, Anda harus membuat ulang rahasia lama dari JupyterLab dan menautkan kembali repositori Git yang sesuai.
Untuk informasi selengkapnya tentang variabel IAMkebijakan, lihat elemen kebijakan: Variabel dan tag di Panduan IAM Pengguna.
-
Tambahkan izin berikut ke kebijakan peran pengguna EMR Studio. Ia 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
}" } } } -
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 dalam 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 dan izin peran pengguna yang ada. Namun, untuk membatasi siapa yang dapat mengakses rahasia individu, kami sarankan Anda mengikuti langkah-langkah untuk menambahkan for-use-with-amazon-emr-managed-user-policies
tag secara manual Untuk menggunakan izin tingkat pengguna ke rahasia Anda, dan kemudian menggunakan kontrol akses berbasis tag dalam kebijakan izin pengguna Anda.
Untuk informasi selengkapnya tentang variabel IAMkebijakan, lihat elemen kebijakan: Variabel dan tag di Panduan IAM Pengguna.
Lampirkan kebijakan izin ke identitas Anda IAM
Tabel berikut merangkum IAM identitas yang Anda lampirkan pada kebijakan izin, bergantung pada mode autentikasi EMR Studio Anda. Untuk petunjuk tentang cara melampirkan kebijakan, lihat Menambahkan dan menghapus izin IAM identitas.
Jika Anda menggunakan... | Lampirkan kebijakan ke... |
---|---|
IAMotentikasi | IAMIdentitas Anda (pengguna, grup pengguna, atau peran). Misalnya, Anda dapat melampirkan kebijakan izin ke pengguna di akun Anda Akun AWS. |
IAMfederasi dengan penyedia identitas eksternal (iDP) |
IAMPeran atau peran yang Anda buat untuk iDP eksternal Anda. Misalnya, federasi IAM untuk SAML 2.0. EMRStudio menggunakan izin yang Anda lampirkan ke IAM peran Anda untuk pengguna dengan akses gabungan ke Studio. |
IAMPusat Identitas | Peran pengguna Amazon EMR Studio Anda. |
Contoh kebijakan pengguna
Kebijakan pengguna dasar berikut memungkinkan sebagian besar tindakan EMR Studio, tetapi tidak mengizinkan pengguna membuat EMR kluster Amazon baru.
penting
Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl
izin, yang harus Anda izinkan untuk pengguna saat Anda menggunakan mode IAM otentikasi. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke Studio EMR.
Kebijakan contoh menyertakan Condition
elemen untuk menerapkan kontrol akses berbasis tag (TBAC) sehingga Anda dapat menggunakan kebijakan dengan contoh peran layanan untuk EMR Studio. Untuk informasi selengkapnya, lihat Membuat peran layanan EMR Studio.
{ "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-account-id>
-<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 perantara berikut memungkinkan sebagian besar tindakan EMR Studio, dan memungkinkan pengguna membuat EMR klaster Amazon baru menggunakan templat klaster.
penting
Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl
izin, yang harus Anda izinkan untuk pengguna saat Anda menggunakan mode IAM otentikasi. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke Studio EMR.
Kebijakan contoh menyertakan Condition
elemen untuk menerapkan kontrol akses berbasis tag (TBAC) sehingga Anda dapat menggunakan kebijakan dengan contoh peran layanan untuk EMR Studio. Untuk informasi selengkapnya, lihat Membuat peran layanan EMR Studio.
{ "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:
<region>
:<account-id>
:/virtualclusters/<virtual-cluster-id>
/endpoints/<managed-endpoint-id>
" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::<account-id>
: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-<aws-account-id>
-<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":"*" }, { "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 lanjutan berikut memungkinkan semua tindakan EMR Studio, dan memungkinkan pengguna membuat EMR klaster Amazon baru menggunakan templat klaster atau dengan menyediakan konfigurasi klaster.
penting
Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl
izin, yang harus Anda izinkan untuk pengguna saat Anda menggunakan mode IAM otentikasi. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke Studio EMR.
Kebijakan contoh menyertakan Condition
elemen untuk menerapkan kontrol akses berbasis tag (TBAC) sehingga Anda dapat menggunakan kebijakan dengan contoh peran layanan untuk EMR Studio. Untuk informasi selengkapnya, lihat Membuat peran layanan EMR Studio.
{ "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:
<region>
:<account-id>
:/virtualclusters/<virtual-cluster-id>
/endpoints/<managed-endpoint-id>
" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::<account-id>
: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-<aws-account-id>
-<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" : "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:GetBucketLocation", "s3:GetBucketLocation", "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 Tanpa Server dengan EMR Studio Workspaces.
Dalam contoh kebijakan ini yang memiliki izin pengguna untuk aplikasi interaktif EMR Tanpa Server dengan EMR Studio, ganti placeholder untuk serverless-runtime-role
and emr-studio-service-role
dengan peran layanan EMR Studio Anda yang benar dan peran runtime EMR Tanpa Server.
{ "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 IAM tindakan minimum yang diperlukan untuk melakukan operasi tersebut. Anda mengizinkan tindakan ini dalam kebijakan IAM izin (saat Anda menggunakan IAM autentikasi) atau dalam kebijakan sesi peran pengguna (saat Anda menggunakan autentikasi Pusat IAM Identitas) untuk Studio. EMR
Tabel ini juga menampilkan operasi yang diizinkan di setiap contoh kebijakan izin untuk EMR Studio. Untuk informasi selengkapnya tentang contoh kebijakan izin, lihatMembuat kebijakan izin untuk pengguna EMR Studio.
Tindakan | Dasar | Menengah | Lanjutan | Tindakan terkait |
---|---|---|---|---|
Membuat dan menghapus Workspace | Ya | Ya | Ya |
|
Lihat panel Kolaborasi, aktifkan kolaborasi Workspace, dan tambahkan kolaborator. Untuk informasi selengkapnya, lihat Menetapkan kepemilikan untuk kolaborasi Workspace. | Ya | Ya | Ya |
|
Lihat daftar bucket Amazon S3 Control penyimpanan di akun yang sama dengan Studio saat membuat EMR klaster baru, dan mengakses log kontainer saat menggunakan UI web untuk men-debug aplikasi | Ya | Ya | Ya |
|
Mengakses Workspace | Ya | Ya | Ya |
|
Lampirkan atau lepaskan EMR kluster Amazon yang ada yang terkait dengan Workspace | Ya | Ya | Ya |
|
Lampirkan atau lepaskan Amazon EMR di cluster EKS | Ya | Ya | Ya |
|
Lampirkan atau lepaskan aplikasi EMR Tanpa Server yang terkait dengan Workspace | Tidak | Ya | Ya |
|
Debug Amazon EMR pada EC2 pekerjaan dengan antarmuka pengguna aplikasi persisten | Ya | Ya | Ya |
|
Debug Amazon EMR pada EC2 pekerjaan dengan antarmuka pengguna aplikasi on-cluster | Ya | Ya | Ya |
|
Debug Amazon EMR pada EKS pekerjaan berjalan menggunakan Spark History Server | Ya | Ya | Ya |
|
Membuat dan menghapus repositori Git | Ya | Ya | Ya |
|
Menautkan dan menghapus tautan repositori Git | Ya | Ya | Ya |
|
Membuat klaster baru dari templat klaster yang telah ditetapkan | Tidak | Ya | Ya |
|
Menyediakan konfigurasi cluster untuk membuat cluster baru. | Tidak | Tidak | Ya |
|
Tetapkan pengguna ke Studio saat Anda menggunakan mode IAM autentikasi. | Tidak | Tidak | Tidak |
|
Jelaskan objek jaringan. | Ya | Ya | Ya |
|
Daftar IAM peran. | Ya | Ya | Ya |
|
Connect ke EMR Studio dari Amazon SageMaker Studio dan gunakan antarmuka visual Data Wrangler. |
Tidak | Tidak | Ya |
|
Gunakan Amazon CodeWhisperer di EMR Studio Anda. | Tidak | Tidak | Ya |
|
Akses SQL editor Amazon Athena dari Studio AndaEMR. Daftar ini mungkin tidak menyertakan semua izin yang Anda perlukan untuk menggunakan semua fitur Athena. Untuk up-to-date daftar terbanyak, lihat kebijakan akses penuh Athena. | Tidak | Tidak | Ya |
|