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 atau EC2 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, Kontrol akses lihat di. Cara 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.
Buat peran pengguna EMR Studio untuk mode autentikasi IAM Identity Center
Anda harus membuat peran pengguna EMR Studio saat menggunakan mode autentikasi Pusat Identitas IAM.
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 mengatur izin AWS Secrets Manager akses untuk membaca rahasia saat Anda menautkan Workspaces 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 contoh kebijakan 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 untuk 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 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
EMR Studio 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 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
Topik
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 bagian di bawah ini. Untuk beralih dari izin tingkat layanan ke izin tingkat pengguna
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 kebijakan, lihat elemen kebijakan IAM: Variabel dan tag di Panduan Pengguna IAM.
-
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 tag untuk kontrol for-use-with-amazon-emr-managed-user-policies
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 kebijakan, lihat elemen kebijakan IAM: Variabel dan tag di Panduan Pengguna IAM.
Lampirkan kebijakan izin ke identitas IAM Anda
Tabel berikut merangkum identitas IAM yang Anda lampirkan pada kebijakan izin, tergantung pada mode otentikasi EMR Studio Anda. Untuk petunjuk tentang cara melampirkan kebijakan, lihat Menambahkan 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 Anda Akun AWS. |
Federasi IAM dengan penyedia identitas eksternal (iDP) |
Peran atau peran IAM yang Anda buat untuk iDP eksternal Anda. Misalnya, IAM untuk federasi SAMP 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 kluster EMR Amazon baru.
penting
Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl
izin, yang harus Anda izinkan untuk pengguna saat Anda menggunakan mode autentikasi IAM. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke EMR Studio.
Kebijakan contoh menyertakan 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.
{ "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 kluster EMR Amazon baru menggunakan templat klaster.
penting
Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl
izin, yang harus Anda izinkan untuk pengguna saat Anda menggunakan mode autentikasi IAM. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke EMR Studio.
Kebijakan contoh menyertakan 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.
{ "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 kluster EMR Amazon baru menggunakan templat klaster atau dengan menyediakan konfigurasi cluster.
penting
Kebijakan contoh tidak menyertakan CreateStudioPresignedUrl
izin, yang harus Anda izinkan untuk pengguna saat Anda menggunakan mode autentikasi IAM. Untuk informasi selengkapnya, lihat Menetapkan pengguna atau grup ke EMR Studio.
Kebijakan contoh menyertakan 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.
{ "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 serverless-runtime-role
untuk emr-studio-service-role
dan dengan peran layanan EMR Studio dan peran runtime EMR Tanpa Server Anda yang benar.
{ "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 (saat Anda menggunakan autentikasi IAM) atau dalam kebijakan sesi peran pengguna (saat Anda menggunakan autentikasi IAM Identity Center) 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, 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 klaster EMR baru, dan mengakses log kontainer saat menggunakan UI web untuk men-debug aplikasi | Ya | Ya | Ya |
|
Mengakses Workspace | Ya | Ya | Ya |
|
Melampirkan atau melepaskan klaster Amazon EMR yang ada yang terkait dengan Workspace | Ya | Ya | Ya |
|
Melampirkan atau melepaskan Amazon EMR pada klaster EKS | Ya | Ya | Ya |
|
Lampirkan atau lepaskan aplikasi EMR Tanpa Server yang terkait dengan Workspace | Tidak | Ya | Ya |
|
Debug Amazon EMR EC2 pada pekerjaan dengan antarmuka pengguna aplikasi persisten | Ya | Ya | Ya |
|
Debug Amazon EMR EC2 pada pekerjaan dengan antarmuka pengguna aplikasi on-cluster | Ya | Ya | Ya |
|
Men-debug pekerjaan Amazon EMR pada EKS yang 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 autentikasi IAM. | Tidak | Tidak | Tidak |
|
Jelaskan objek jaringan. | Ya | Ya | Ya |
|
Daftar peran IAM. | Ya | Ya | Ya |
|
Connect ke EMR Studio dari Amazon SageMaker AI Studio dan gunakan antarmuka visual Data Wrangler. |
Tidak | Tidak | Ya |
|
Gunakan Amazon CodeWhisperer di EMR Studio Anda. | Tidak | Tidak | Ya |
|
Akses editor SQL Amazon Athena dari EMR Studio Anda. 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 |
|