Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan kebijakan berbasis identitas (kebijakan IAM) untuk Amazon Redshift
Topik ini memberikan contoh kebijakan berbasis identitas di mana administrator akun dapat melampirkan kebijakan izin ke identitas IAM (yaitu, pengguna, grup, dan peran).
penting
Kami menyarankan Anda terlebih dahulu meninjau topik pengantar yang menjelaskan konsep dasar dan opsi yang tersedia bagi Anda untuk mengelola akses ke sumber daya Amazon Redshift Anda. Untuk informasi selengkapnya, lihat Ikhtisar mengelola izin akses ke sumber daya Amazon Redshift.
Berikut adalah contoh kebijakan izin. Kebijakan ini memungkinkan pengguna untuk membuat, menghapus, memodifikasi, dan me-reboot semua kluster, lalu menolak izin untuk menghapus atau memodifikasi kluster tempat pengenal klaster dimulai dengan in dan. production
Wilayah AWS us-west-2
Akun AWS 123456789012
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteModifyProtected", "Action": [ "redshift:DeleteCluster", "redshift:ModifyCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:production*" ], "Effect": "Deny" } ] }
Kebijakan tersebut memiliki dua pernyataan:
-
Pernyataan pertama memberikan izin bagi pengguna kepada pengguna untuk membuat, menghapus, memodifikasi, dan me-reboot cluster. Pernyataan tersebut menetapkan karakter wildcard (*) sebagai
Resource
nilai sehingga kebijakan tersebut berlaku untuk semua resource Amazon Redshift yang dimiliki oleh akun root. AWS -
Pernyataan kedua menolak izin untuk menghapus atau memodifikasi cluster. Pernyataan tersebut menentukan klaster Amazon Resource Name (ARN) untuk nilai
Resource
yang menyertakan karakter wildcard (*). Akibatnya, pernyataan ini berlaku untuk semua cluster Amazon Redshift yang dimiliki oleh AWS akun root tempat pengidentifikasi cluster dimulai.production
AWS kebijakan terkelola untuk Amazon Redshift
AWS mengatasi banyak kasus penggunaan umum dengan menyediakan kebijakan IAM mandiri yang dibuat dan dikelola oleh. AWS Kebijakan terkelola memberikan izin yang diperlukan untuk kasus penggunaan umum sehingga Anda tidak perlu menyelidiki izin apa yang diperlukan. Untuk informasi selengkapnya, lihat Kebijakan terkelola AWS dalam Panduan Pengguna IAM.
Anda juga dapat membuat kebijakan IAM kustom Anda sendiri untuk mengizinkan izin untuk operasi dan sumber daya Amazon Redshift API. Anda dapat melampirkan kebijakan kustom ini ke IAM role atau grup yang memerlukan izin tersebut.
Bagian berikut menjelaskan kebijakan AWS terkelola, yang dapat Anda lampirkan ke pengguna di akun Anda, dan khusus untuk Amazon Redshift.
AmazonRedshiftReadOnlyAkses
Memberikan akses hanya-baca ke semua sumber daya Amazon Redshift untuk sebuah akun. AWS
Anda dapat menemukan kebijakan AmazonRedshiftReadOnlyAccess
AmazonRedshiftFullAccess
Memberikan akses penuh ke semua sumber daya Amazon Redshift untuk AWS sebuah akun. Selain itu, kebijakan ini memberikan akses penuh ke semua sumber daya Amazon Redshift Tanpa Server.
Anda dapat menemukan AmazonRedshiftFullAccess
AmazonRedshiftQueryEditor
Memberikan akses penuh ke editor kueri di konsol Amazon Redshift.
Anda dapat menemukan AmazonRedshiftQueryEditor
AmazonRedshiftDataFullAkses
Memberikan akses penuh ke operasi Amazon Redshift Data API dan sumber daya untuk AWS akun.
Anda dapat menemukan kebijakan AmazonRedshiftDataFullAccess
AmazonRedshiftQueryEditorV2 FullAccess
Memberikan akses penuh ke operasi dan sumber daya Amazon Redshift query editor v2. Kebijakan ini juga memberikan akses ke layanan lain yang diperlukan.
Anda dapat menemukan FullAccess kebijakan AmazonRedshiftQueryEditorV2
AmazonRedshiftQueryEditorV2 NoSharing
Memberikan kemampuan untuk bekerja dengan editor kueri Amazon Redshift v2 tanpa berbagi sumber daya. Kebijakan ini juga memberikan akses ke layanan lain yang diperlukan. Prinsipal yang menggunakan kebijakan ini tidak dapat menandai sumber dayanya (seperti kueri) untuk membagikannya dengan prinsipal lain dalam hal yang sama. Akun AWS
Anda dapat menemukan NoSharing kebijakan AmazonRedshiftQueryEditorV2
AmazonRedshiftQueryEditorV2 ReadSharing
Memberikan kemampuan untuk bekerja dengan editor kueri Amazon Redshift v2 dengan berbagi sumber daya yang terbatas. Kebijakan ini juga memberikan akses ke layanan lain yang diperlukan. Prinsipal yang menggunakan kebijakan ini dapat menandai sumber dayanya (seperti kueri) untuk membagikannya dengan prinsipal lain dalam hal yang sama. Akun AWS Prinsipal yang diberikan dapat membaca sumber daya yang dibagikan dengan timnya tetapi tidak dapat memperbaruinya.
Anda dapat menemukan ReadSharing kebijakan AmazonRedshiftQueryEditorV2
AmazonRedshiftQueryEditorReadWriteBerbagi V2
Memberikan kemampuan untuk bekerja dengan editor kueri Amazon Redshift v2 dengan berbagi sumber daya. Kebijakan ini juga memberikan akses ke layanan lain yang diperlukan. Prinsipal yang menggunakan kebijakan ini dapat menandai sumber dayanya (seperti kueri) untuk membagikannya dengan prinsipal lain dalam hal yang sama. Akun AWS Kepala sekolah yang diberikan dapat membaca dan memperbarui sumber daya yang dibagikan dengan timnya.
Anda dapat menemukan kebijakan ReadWriteBerbagi AmazonRedshift QueryEditor V2
AmazonRedshiftServiceLinkedRolePolicy
Anda tidak dapat melampirkan AmazonRedshiftServiceLinkedRolePolicy ke entitas IAM Anda. Kebijakan ini dilampirkan ke peran terkait layanan yang memungkinkan Amazon Redshift mengakses sumber daya akun. Untuk informasi selengkapnya, lihat Menggunakan peran terkait layanan untuk Amazon Redshift.
Anda dapat menemukan AmazonRedshiftServiceLinkedRolePolicy
AmazonRedshiftAllCommandsFullAccess
Memberikan kemampuan untuk menggunakan peran IAM yang dibuat dari konsol Amazon Redshift dan mengaturnya sebagai default untuk cluster untuk menjalankan perintah COPY dari Amazon S3, UNLOAD, CREATE EXTERNAL SCHEMA, CREATE EXTERNAL FUNCTION, dan CREATE MODEL. Kebijakan ini juga memberikan izin untuk menjalankan pernyataan SELECT untuk layanan terkait, seperti Amazon S3, CloudWatch Log, Amazon SageMaker, atau. AWS Glue
Anda dapat menemukan AmazonRedshiftAllCommandsFullAccess
Anda juga dapat membuat kebijakan IAM kustom Anda sendiri untuk mengizinkan izin untuk operasi dan sumber daya Amazon Redshift API. Anda dapat melampirkan kebijakan kustom ini ke IAM role atau grup yang memerlukan izin tersebut.
Pembaruan Amazon Redshift ke kebijakan terkelola AWS
Lihat detail tentang pembaruan kebijakan AWS terkelola untuk Amazon Redshift sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan umpan RSS di halaman riwayat Dokumen Amazon Redshift.
Perubahan | Deskripsi | Tanggal |
---|---|---|
AmazonRedshiftQueryEditorV2 FullAccess — Permbaruan ke kebijakan yang sudah ada |
Izin untuk tindakan |
Februari 21, 2024 |
AmazonRedshiftQueryEditorV2 NoSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 21, 2024 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 21, 2024 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 21, 2024 |
AmazonRedshiftReadOnlyAkses – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 7, 2024 |
AmazonRedshiftServiceLinkedRolePolicy – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
31 Oktober 2023 |
AmazonRedshiftQueryEditorV2 NoSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
16 Agustus 2023 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
16 Agustus 2023 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
16 Agustus 2023 |
AmazonRedshiftServiceLinkedRolePolicy – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan AWS Secrets Manager untuk membuat dan mengelola rahasia ditambahkan ke kebijakan terkelola. Izin yang ditambahkan adalah sebagai berikut:
|
Agustus 14, 2023 |
AmazonRedshiftServiceLinkedRolePolicy – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan di Amazon EC2 untuk membuat dan mengelola grup keamanan dan aturan perutean dihapus dari kebijakan terkelola. Izin ini berkaitan dengan pembuatan subnet dan VPC. Izin yang dihapus adalah sebagai berikut:
|
08 Mei 2023 |
AmazonRedshiftDataFullAkses – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
April 7, 2023 |
AmazonRedshiftServiceLinkedRolePolicy – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan di Amazon EC2 untuk pembuatan dan pengelolaan aturan grup keamanan ditambahkan ke kebijakan terkelola. Grup dan aturan keamanan ini secara khusus terkait dengan tag |
April 06, 2023 |
AmazonRedshiftQueryEditorV2 NoSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
21 Maret 2023 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
21 Maret 2023 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
21 Maret 2023 |
AmazonRedshiftQueryEditorV2 NoSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
2 Februari 2023 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
2 Februari 2023 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
2 Februari 2023 |
AmazonRedshiftQueryEditorV2 NoSharing – Pembaruan ke kebijakan yang ada |
Untuk memberikan izin menggunakan buku catatan, Amazon Redshift menambahkan izin untuk tindakan berikut:
|
Oktober 17, 2022 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Untuk memberikan izin menggunakan buku catatan, Amazon Redshift menambahkan izin untuk tindakan berikut:
|
Oktober 17, 2022 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Pembaruan ke kebijakan yang ada |
Untuk memberikan izin menggunakan buku catatan, Amazon Redshift menambahkan izin untuk tindakan berikut:
|
Oktober 17, 2022 |
AmazonRedshiftServiceLinkedRolePolicy – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan namespace |
7 September 2022 |
AmazonRedshiftQueryEditorV2 NoSharing – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin ke tindakan |
30 Agustus 2022 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin ke tindakan |
30 Agustus 2022 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin ke tindakan |
30 Agustus 2022 |
AmazonRedshiftFullAccess – Pembaruan ke kebijakan yang ada |
Izin untuk Amazon Redshift Tanpa Server ditambahkan ke kebijakan terkelola yang ada. AmazonRedshiftFullAccess |
22 Juli 2022 |
AmazonRedshiftDataFullAkses – Pembaruan ke kebijakan yang ada |
Amazon Redshift memperbarui kondisi pelingkupan redshift-serverless:GetCredentials default aws:ResourceTag/RedshiftDataFullAccess izin tag dari StringEquals untuk memberikan akses StringLike ke sumber daya yang ditandai dengan kunci RedshiftDataFullAccess tag dan nilai tag apa pun. |
Juli 11, 2022 |
AmazonRedshiftDataFullAkses – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin baru redshift-serverless:GetCredentials untuk memungkinkan kredensil sementara ke Amazon Redshift Tanpa Server. |
8 Juli 2022 |
AmazonRedshiftQueryEditorV2 NoSharing – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin untuk tindakan tersebut. |
15 Juni 2022 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin untuk tindakan tersebut. |
15 Juni 2022 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin untuk tindakan tersebut. |
15 Juni 2022 |
AmazonRedshiftServiceLinkedRolePolicy – Pembaruan ke kebijakan yang ada |
Untuk mengaktifkan akses publik ke titik akhir Amazon Redshift Serverless baru, Amazon Redshift mengalokasikan dan mengaitkan alamat IP Elastic ke antarmuka jaringan Elastic titik akhir VPC di akun pelanggan. Ini dilakukan melalui izin yang diberikan melalui peran terkait layanan. Untuk mengaktifkan kasus penggunaan ini, tindakan untuk mengalokasikan dan merilis alamat IP Elastis ditambahkan ke peran terkait layanan Amazon Redshift Tanpa Server. |
26 Mei 2022 |
AmazonRedshiftQueryEditorV2 FullAccess – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 22, 2022 |
AmazonRedshiftQueryEditorV2 NoSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 22, 2022 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 22, 2022 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 22, 2022 |
AmazonRedshiftQueryEditorV2 ReadSharing – Pembaruan ke kebijakan yang ada |
Izin untuk tindakan |
Februari 22, 2022 |
AmazonRedshiftServiceLinkedRolePolicy – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin untuk tindakan baru guna memungkinkan pengelolaan jaringan Amazon Redshift dan sumber daya VPC. |
22 November 2021 |
AmazonRedshiftAllCommandsFullAccess – Kebijakan baru |
Amazon Redshift menambahkan kebijakan baru untuk mengizinkan penggunaan peran IAM yang dibuat dari konsol Amazon Redshift dan mengaturnya sebagai default untuk klaster untuk menjalankan perintah COPY dari Amazon S3, UNLOAD, CREATE EXTERNAL SCHEMA, CREATE EXTERNAL FUNCTION, CREATE MODEL, atau CREATE LIBRARY. |
18 November 2021 |
AmazonRedshiftServiceLinkedRolePolicy – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin untuk tindakan baru guna memungkinkan pengelolaan grup CloudWatch log Amazon Redshift dan aliran log, termasuk ekspor log audit. |
15 November 2021 |
AmazonRedshiftFullAccess – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin baru untuk memungkinkan penjelasan model, DynamoDB, Redshift Spectrum, dan federasi Amazon RDS. | Oktober 07, 2021 |
AmazonRedshiftQueryEditorV2 FullAccess – Kebijakan baru |
Amazon Redshift menambahkan kebijakan baru untuk mengizinkan akses penuh ke editor kueri Amazon Redshift v2. |
24 September 2021 |
AmazonRedshiftQueryEditorV2 NoSharing – Kebijakan baru |
Amazon Redshift menambahkan kebijakan baru untuk mengizinkan penggunaan editor kueri Amazon Redshift v2 tanpa berbagi sumber daya. |
24 September 2021 |
AmazonRedshiftQueryEditorV2 ReadSharing – Kebijakan baru |
Amazon Redshift menambahkan kebijakan baru untuk mengizinkan berbagi baca dalam editor kueri Amazon Redshift v2. |
24 September 2021 |
AmazonRedshiftQueryEditorReadWriteBerbagi V2 – Kebijakan baru |
Amazon Redshift menambahkan kebijakan baru untuk mengizinkan pembacaan dan pembaruan berbagi dalam editor kueri Amazon Redshift v2. |
24 September 2021 |
AmazonRedshiftFullAccess – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin baru untuk mengizinkan. |
18 Agustus 2021 |
AmazonRedshiftDataFullAkses – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin baru untuk mengizinkan. |
Agustus 12, 2021 |
AmazonRedshiftDataFullAkses – Pembaruan ke kebijakan yang ada |
Amazon Redshift menambahkan izin baru untuk mengizinkan. |
27 Juli 2021 |
Amazon Redshift mulai melacak perubahan |
Amazon Redshift mulai melacak perubahan untuk kebijakan AWS terkelolanya. |
27 Juli 2021 |
Izin diperlukan untuk menggunakan Redshift Spectrum
Amazon Redshift Spectrum memerlukan izin ke layanan AWS lain untuk mengakses sumber daya. Untuk detail tentang izin dalam kebijakan IAM untuk Redshift Spectrum, lihat kebijakan IAM untuk Amazon Redshift Spectrum di Panduan Pengembang Database Amazon Redshift.
Izin diperlukan untuk menggunakan konsol Amazon Redshift
Agar pengguna dapat bekerja dengan konsol Amazon Redshift, pengguna tersebut harus memiliki seperangkat izin minimum yang memungkinkan pengguna mendeskripsikan sumber daya Amazon Redshift untuk akun mereka. AWS Izin ini juga harus memungkinkan pengguna untuk menjelaskan informasi terkait lainnya, termasuk keamanan Amazon EC2, Amazon, CloudWatch Amazon SNS, dan informasi jaringan.
Jika Anda membuat kebijakan IAM yang lebih ketat daripada izin minimum yang diperlukan, konsol tidak akan berfungsi sebagaimana mestinya untuk pengguna dengan kebijakan IAM. Untuk memastikan bahwa pengguna tersebut masih dapat menggunakan konsol Amazon Redshift, lampirkan juga kebijakan AmazonRedshiftReadOnlyAccess
terkelola ke pengguna. Cara melakukan ini dijelaskan dalamAWS kebijakan terkelola untuk Amazon Redshift.
Untuk informasi yang dapat memberi pengguna akses ke editor kueri di konsol Amazon Redshift, lihat. Izin diperlukan untuk menggunakan editor kueri konsol Amazon Redshift
Anda tidak perlu mengizinkan izin konsol minimum untuk pengguna yang melakukan panggilan hanya ke AWS CLI atau Amazon Redshift API.
Izin diperlukan untuk menggunakan editor kueri konsol Amazon Redshift
Agar pengguna dapat bekerja dengan editor kueri Amazon Redshift, pengguna tersebut harus memiliki set izin minimum untuk operasi Amazon Redshift dan Amazon Redshift Data API. Untuk terhubung ke database menggunakan rahasia, Anda juga harus memiliki izin Secrets Manager.
Untuk memberi pengguna akses ke editor kueri di konsol Amazon Redshift, lampirkan kebijakan AmazonRedshiftQueryEditor
dan AmazonRedshiftReadOnlyAccess
AWS terkelola. AmazonRedshiftQueryEditor
Kebijakan ini memungkinkan izin pengguna untuk mengambil hasil hanya pernyataan SQL mereka sendiri. Artinya, pernyataan yang diajukan sama aws:userid
seperti yang ditunjukkan pada bagian kebijakan yang AmazonRedshiftQueryEditor
AWS dikelola ini.
{ "Sid": "DataAPIIAMSessionPermissionsRestriction", "Action": [ "redshift-data:GetStatementResult", "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:ListStatements" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "${aws:userid}" } } }
Untuk memungkinkan pengguna mengambil hasil pernyataan SQL orang lain dalam peran IAM yang sama, buat kebijakan Anda sendiri tanpa syarat untuk membatasi akses ke pengguna saat ini. Batasi juga akses untuk mengubah kebijakan ke administrator.
Izin yang diperlukan untuk menggunakan editor kueri v2
Agar pengguna dapat bekerja dengan editor kueri Amazon Redshift v2, pengguna tersebut harus memiliki set izin minimum untuk Amazon Redshift, operasi editor kueri v2, dan AWS layanan lain seperti AWS Key Management Service,, dan layanan penandaan. AWS Secrets Manager
Untuk memberi pengguna akses penuh ke editor kueri v2, lampirkan kebijakan AmazonRedshiftQueryEditorV2FullAccess
AWS terkelola. AmazonRedshiftQueryEditorV2FullAccess
Kebijakan ini memungkinkan izin pengguna untuk berbagi sumber daya editor kueri v2, seperti kueri, dengan orang lain di tim yang sama. Untuk detail tentang cara akses ke resource editor kueri v2 dikendalikan, lihat definisi kebijakan terkelola khusus untuk editor kueri v2 di konsol IAM.
Beberapa kebijakan AWS terkelola Amazon Redshift query editor v2 menggunakan AWS tag dalam kondisi untuk cakupan akses ke sumber daya. Dalam editor kueri v2, kueri berbagi didasarkan pada kunci tag dan nilai "aws:ResourceTag/sqlworkbench-team": "${aws:PrincipalTag/sqlworkbench-team}"
dalam kebijakan IAM yang dilampirkan pada prinsipal (peran IAM). Prinsipal yang sama Akun AWS dengan nilai tag yang sama (misalnya,accounting-team
), berada di tim yang sama di editor kueri v2. Anda hanya dapat dikaitkan dengan satu tim pada satu waktu. Pengguna dengan izin administratif dapat mengatur tim di konsol IAM dengan memberi semua anggota tim nilai yang sama untuk tag tersebutsqlworkbench-team
. Jika nilai tag diubah untuk pengguna IAM atau peran IAM, mungkin ada penundaan hingga perubahan tercermin dalam sumber daya bersama. sqlworkbench-team
Jika nilai tag sumber daya (seperti kueri) diubah, sekali lagi mungkin ada penundaan hingga perubahan tercermin. Anggota tim juga harus memiliki tag:GetResources
izin untuk berbagi.
Contoh: Untuk menambahkan accounting-team
tag untuk peran IAM
Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.
Di panel navigasi konsol, pilih Peran lalu pilih nama peran yang ingin Anda edit.
Pilih tab Tag dan kemudian pilih Tambahkan tag.
Tambahkan kunci tag sqlworkbench-team dan nilainya.
accounting-team
Pilih Simpan perubahan.
Sekarang ketika prinsipal IAM (dengan peran IAM ini terlampir) berbagi kueri dengan tim, prinsipal lain dengan nilai
accounting-team
tag yang sama dapat melihat kueri.
Untuk informasi selengkapnya tentang cara melampirkan tag ke prinsipal, termasuk peran IAM dan pengguna IAM, lihat Menandai sumber daya IAM di Panduan Pengguna IAM.
Anda juga dapat mengatur tim di tingkat sesi menggunakan Penyedia Identitas (iDP). Hal ini memungkinkan beberapa pengguna yang menggunakan peran IAM yang sama untuk memiliki tim yang berbeda. Kebijakan kepercayaan peran IAM harus memungkinkan sts:TagSession
operasi. Untuk informasi selengkapnya, lihat Izin yang diperlukan untuk menambahkan tag sesi di Panduan Pengguna IAM. Tambahkan atribut tag utama ke pernyataan SAMP yang disediakan oleh idP Anda.
<Attribute Name="https://aws.amazon.com/SAML/Attributes/PrincipalTag:sqlworkbench-team"> <AttributeValue>accounting-team</AttributeValue> </Attribute>
Ikuti petunjuk untuk penyedia Identitas (iDP) Anda untuk mengisi atribut SAMP dengan konten yang berasal dari direktori Anda. Untuk informasi selengkapnya tentang Penyedia identitas (IdPs) dan Amazon Redshift, lihat Menggunakan otentikasi IAM untuk menghasilkan kredensi pengguna basis data dan Penyedia identitas dan federasi di Panduan Pengguna IAM.
sqlworkbench:CreateNotebookVersion
Memberikan izin untuk mendapatkan konten sel notebook saat ini dan membuat versi buku catatan di akun Anda. Artinya, pada saat pembuatan versi, konten notebook saat ini sama dengan konten versi. Kemudian, konten sel dalam versi tetap sama dengan notebook saat ini diperbarui. sqlworkbench:GetNotebookVersion
Memberikan izin untuk mendapatkan versi notebook. Pengguna yang tidak memiliki sqlworkbench:BatchGetNotebookCell
izin tetapi memiliki sqlworkbench:CreateNotebookVersion
dan sqlworkbench:GetNotebookVersion
izin pada notebook memiliki akses ke sel notebook dalam versi. Pengguna ini tanpa sqlworkbench:BatchGetNotebookCell
izin masih dapat mengambil konten sel notebook dengan terlebih dahulu membuat versi dan kemudian mendapatkan versi yang dibuat ini.
Izin diperlukan untuk menggunakan penjadwal Amazon Redshift
Saat Anda menggunakan penjadwal Amazon Redshift, Anda menyiapkan peran IAM dengan hubungan kepercayaan dengan penjadwal Amazon Redshift (scheduler.redshift.amazonaws.com
) untuk memungkinkan penjadwal menerima izin atas nama Anda. Anda juga melampirkan kebijakan (izin) ke peran untuk operasi Amazon Redshift API yang ingin Anda jadwalkan.
Contoh berikut menunjukkan dokumen kebijakan dalam format JSON untuk menyiapkan hubungan kepercayaan dengan penjadwal Amazon Redshift dan Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "scheduler.redshift.amazonaws.com", "redshift.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Untuk informasi selengkapnya tentang entitas trust, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan Pengguna IAM.
Anda juga harus menambahkan izin untuk operasi Amazon Redshift yang ingin Anda jadwalkan.
Agar penjadwal dapat menggunakan ResizeCluster
operasi, tambahkan izin yang mirip dengan kebijakan IAM Anda berikut ini. Tergantung pada lingkungan Anda, Anda mungkin ingin membuat kebijakan lebih ketat.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:ResizeCluster", "Resource": "*" } ] }
Untuk langkah-langkah membuat peran bagi penjadwal Amazon Redshift, lihat Membuat peran untuk AWS layanan (konsol) di Panduan Pengguna IAM. Buat pilihan ini saat Anda membuat peran di konsol IAM:
Untuk Pilih layanan yang akan menggunakan peran ini: Pilih Redshift.
Untuk Pilih kasus penggunaan Anda: Pilih Redshift - Scheduler.
Buat atau lampirkan kebijakan ke peran yang memungkinkan operasi Amazon Redshift dijadwalkan. Pilih Buat kebijakan atau ubah peran untuk melampirkan kebijakan. Masukkan kebijakan JSON untuk operasi yang akan dijadwalkan.
Setelah Anda membuat peran, edit Hubungan Kepercayaan peran IAM untuk menyertakan layanan
redshift.amazonaws.com
.
Peran IAM yang Anda buat memiliki entitas tepercaya scheduler.redshift.amazonaws.com
danredshift.amazonaws.com
. Ini juga memiliki kebijakan terlampir yang memungkinkan tindakan Amazon Redshift API yang didukung, seperti,. "redshift:ResizeCluster"
Izin diperlukan untuk menggunakan penjadwal Amazon EventBridge
Saat Anda menggunakan EventBridge penjadwal Amazon, Anda menyiapkan peran IAM dengan hubungan kepercayaan dengan EventBridge scheduler (events.amazonaws.com
) untuk memungkinkan penjadwal menerima izin atas nama Anda. Anda juga melampirkan kebijakan (izin) ke peran untuk operasi Amazon Redshift Data API yang ingin Anda jadwalkan dan kebijakan untuk operasi Amazon EventBridge .
Anda menggunakan EventBridge penjadwal saat membuat kueri terjadwal dengan editor kueri Amazon Redshift di konsol.
Anda dapat membuat peran IAM untuk menjalankan kueri terjadwal di konsol IAM. Dalam peran IAM ini, lampirkan AmazonEventBridgeFullAccess
danAmazonRedshiftDataFullAccess
.
Contoh berikut menunjukkan dokumen kebijakan dalam format JSON untuk mengatur hubungan kepercayaan dengan EventBridge penjadwal.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com", ] }, "Action": "sts:AssumeRole" } ] }
Untuk informasi selengkapnya tentang entitas trust, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan Pengguna IAM.
Untuk langkah-langkah membuat peran bagi EventBridge penjadwal, lihat Membuat peran untuk AWS layanan (konsol) di Panduan Pengguna IAM. Buat pilihan ini saat Anda membuat peran di konsol IAM:
Untuk Pilih layanan yang akan menggunakan peran ini: Pilih CloudWatch Acara.
Untuk Pilih kasus penggunaan Anda: Pilih CloudWatch Acara.
Lampirkan kebijakan izin berikut:
AmazonEventBridgeFullAccess
danAmazonRedshiftDataFullAccess
.
Peran IAM yang Anda buat memiliki entitas tepercaya. events.amazonaws.com
Ini juga memiliki kebijakan terlampir yang memungkinkan tindakan API Data Amazon Redshift yang didukung, seperti,. "redshift-data:*"
Izin yang diperlukan untuk menggunakan machine learning Amazon Redshift (ML)
Berikut ini, Anda dapat menemukan deskripsi izin yang diperlukan untuk menggunakan pembelajaran mesin Amazon Redshift (ML) untuk berbagai kasus penggunaan.
Agar pengguna Anda dapat menggunakan Amazon Redshift ML dengan Amazon SageMaker, buat peran IAM dengan kebijakan yang lebih ketat daripada default. Anda dapat menggunakan kebijakan berikut. Anda juga dapat mengubah kebijakan ini untuk memenuhi kebutuhan Anda.
Kebijakan berikut menunjukkan izin yang diperlukan untuk menjalankan SageMaker Autopilot dengan penjelasan model dari Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com" ] } } } ] }
Kebijakan berikut menunjukkan izin minimal penuh untuk mengizinkan akses ke Amazon DynamoDB, Redshift Spectrum, dan federasi Amazon RDS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateAutoMLJob", "sagemaker:CreateCompilationJob", "sagemaker:CreateEndpoint", "sagemaker:DescribeAutoMLJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeCompilationJob", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTransformJob", "sagemaker:ListCandidatesForAutoMLJob", "sagemaker:StopAutoMLJob", "sagemaker:StopCompilationJob", "sagemaker:StopTrainingJob", "sagemaker:DescribeEndpoint", "sagemaker:InvokeEndpoint", "sagemaker:StopProcessingJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob" ], "Resource": [ "arn:aws:sagemaker:*:*:model/*redshift*", "arn:aws:sagemaker:*:*:training-job/*redshift*", "arn:aws:sagemaker:*:*:automl-job/*redshift*", "arn:aws:sagemaker:*:*:compilation-job/*redshift*", "arn:aws:sagemaker:*:*:processing-job/*redshift*", "arn:aws:sagemaker:*:*:transform-job/*redshift*", "arn:aws:sagemaker:*:*:endpoint/*redshift*" ] }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/Endpoints/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/ProcessingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TrainingJobs/*redshift*", "arn:aws:logs:*:*:log-group:/aws/sagemaker/TransformJobs/*redshift*" ] }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": [ "SageMaker", "/aws/sagemaker/Endpoints", "/aws/sagemaker/ProcessingJobs", "/aws/sagemaker/TrainingJobs", "/aws/sagemaker/TransformJobs" ] } } }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": [ "arn:aws:s3:::redshift-downloads", "arn:aws:s3:::redshift-downloads/*", "arn:aws:s3:::*redshift*", "arn:aws:s3:::*redshift*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetBucketAcl", "s3:GetBucketCors", "s3:GetEncryptionConfiguration", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutBucketAcl", "s3:PutBucketCors", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:CreateBucket" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "dynamodb:Scan", "dynamodb:DescribeTable", "dynamodb:Getitem" ], "Resource": [ "arn:aws:dynamodb:*:*:table/*redshift*", "arn:aws:dynamodb:*:*:table/*redshift*/index/*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": [ "arn:aws:elasticmapreduce:*:*:cluster/*redshift*" ] }, { "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "elasticmapreduce:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:*:*:function:*redshift*" }, { "Effect": "Allow", "Action": [ "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" ], "Resource": [ "arn:aws:glue:*:*:table/*redshift*/*", "arn:aws:glue:*:*:catalog", "arn:aws:glue:*:*:database/*redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:*redshift*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/Redshift": "true" } } }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "redshift.amazonaws.com", "glue.amazonaws.com", "sagemaker.amazonaws.com", "athena.amazonaws.com" ] } } } ] }
Secara opsional, untuk menggunakan AWS KMS kunci enkripsi, tambahkan izin berikut ke kebijakan.
{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<your-region>:<your-account-id>:key/<your-kms-key>" ] }
Untuk mengizinkan Amazon Redshift dan SageMaker mengasumsikan peran IAM sebelumnya untuk berinteraksi dengan layanan lain, tambahkan kebijakan kepercayaan berikut ke peran tersebut.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com", "forecast.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Di urutan sebelumnya, redshift-downloads/redshift-ml/
bucket Amazon S3 adalah lokasi penyimpanan data sampel yang digunakan untuk langkah dan contoh lain. Anda dapat menghapus bucket ini jika Anda tidak perlu memuat data dari Amazon S3. Atau ganti dengan bucket Amazon S3 lain yang Anda gunakan untuk memuat data ke Amazon Redshift.
your-s3-bucket
Nilaiyour-account-id
,your-role
, dan adalah ID akun, peran, dan bucket yang Anda tentukan dalam perintah CREATE MODEL.
Secara opsional, Anda dapat menggunakan bagian AWS KMS kunci dari kebijakan sampel jika Anda menentukan AWS KMS kunci untuk digunakan dengan Amazon Redshift ML. your-kms-key
Nilai adalah kunci yang Anda gunakan sebagai bagian dari perintah CREATE MODEL Anda.
Saat Anda menentukan private virtual private cloud (VPC) untuk pekerjaan tuning hyperparameter, tambahkan izin berikut.
{ "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }
Untuk bekerja dengan penjelasan model, pastikan Anda memiliki izin untuk memanggil operasi SageMaker API. Kami menyarankan Anda menggunakan kebijakan AmazonSageMakerFullAccess
terkelola. Jika Anda ingin membuat peran IAM dengan kebijakan yang lebih ketat, gunakan kebijakan berikut ini.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker::CreateEndpoint", "sagemaker::CreateEndpointConfig", "sagemaker::DeleteEndpoint", "sagemaker::DeleteEndpointConfig", "sagemaker::DescribeEndpoint", "sagemaker::DescribeEndpointConfig", "sagemaker::DescribeModel", "sagemaker::InvokeEndpoint", "sagemaker::ListTags" ], "Resource": "*" } ] }
Untuk informasi selengkapnya tentang kebijakan AmazonSageMakerFullAccess
terkelola, lihat AmazonSageMakerFullAkses di Panduan SageMaker Pengembang Amazon.
Jika Anda ingin membuat model Forecast, sebaiknya gunakan kebijakan AmazonForecastFullAccess
terkelola. Jika Anda ingin menggunakan kebijakan yang lebih ketat, tambahkan kebijakan berikut ke peran IAM Anda.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "forecast:CreateAutoPredictor", "forecast:CreateDataset", "forecast:CreateDatasetGroup", "forecast:CreateDatasetImportJob", "forecast:CreateForecast", "forecast:CreateForecastExportJob", "forecast:DeleteResourceTree", "forecast:DescribeAutoPredictor", "forecast:DescribeDataset", "forecast:DescribeDatasetGroup", "forecast:DescribeDatasetImportJob", "forecast:DescribeForecast", "forecast:DescribeForecastExportJob", "forecast:StopResource", "forecast:TagResource", "forecast:UpdateDatasetGroup" ], "Resource": "*" } ] }
Untuk informasi selengkapnya tentang Amazon Redshift ML, lihat Menggunakan machine learning di Amazon Redshift atau CREATE MODEL.
Izin untuk konsumsi streaming
Streaming ingestion bekerja dengan dua layanan. Ini adalah Kinesis Data Streams dan Amazon MSK.
Izin yang diperlukan untuk menggunakan konsumsi streaming dengan Kinesis Data Streams
Prosedur dengan contoh kebijakan terkelola tersedia di Memulai dengan konsumsi streaming dari Amazon Kinesis Data Streams.
Izin yang diperlukan untuk menggunakan streaming ingestion dengan Amazon MSK
Prosedur dengan contoh kebijakan terkelola tersedia di Memulai dengan konsumsi streaming dari Amazon Managed Streaming for Apache Kafka.
Izin yang diperlukan untuk menggunakan operasi API berbagi data
Untuk mengontrol akses ke operasi API berbagi data, gunakan kebijakan berbasis tindakan IAM. Untuk informasi tentang cara mengelola kebijakan IAM, lihat Mengelola kebijakan IAM di Panduan Pengguna IAM.
Secara khusus, anggaplah administrator cluster produser perlu menggunakan AuthorizeDataShare
panggilan untuk mengotorisasi jalan keluar untuk datashare di luar file. Akun AWS Dalam hal ini, Anda menyiapkan kebijakan berbasis tindakan IAM untuk memberikan izin ini. Gunakan DeauthorizeDataShare
panggilan untuk mencabut jalan keluar.
Saat menggunakan kebijakan berbasis tindakan IAM, Anda juga dapat menentukan sumber daya IAM dalam kebijakan, seperti. DataShareARN
Berikut ini menunjukkan format dan contoh untukDataShareARN
.
arn:aws:redshift:region:account-id:datashare:namespace-guid/datashare-name arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare
Anda dapat membatasi AuthorizeDataShare
akses ke datashare tertentu dengan menentukan nama datashare dalam kebijakan IAM.
{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/SalesShare" ], "Effect": "Deny" } ] }
Anda juga dapat membatasi kebijakan IAM untuk semua datashares yang dimiliki oleh cluster produsen tertentu. Untuk melakukannya, ganti datashare-name
nilai dalam kebijakan dengan wildcard atau tanda bintang. Pertahankan namespace-guid
nilai cluster.
arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*
Berikut ini adalah kebijakan IAM yang mencegah entitas memanggil AuthorizeDataShare
datashares yang dimiliki oleh cluster produsen tertentu.
{ "Statement": [ { "Action": [ "redshift:AuthorizeDataShare", ], "Resource": [ "arn:aws:redshift:us-east-1:555555555555:datashare:86b5169f-01dc-4a6f-9fbb-e2e24359e9a8/*" ], "Effect": "Deny" } ] }
DataShareARN
membatasi akses berdasarkan nama datashare dan global unique ID (GUID) untuk namespace cluster yang memiliki. Ini dilakukan dengan menentukan nama sebagai tanda bintang.
Kebijakan sumber daya untuk GetClusterCredentials
Untuk terhubung ke database cluster menggunakan koneksi JDBC atau ODBC dengan kredenal database IAM, atau untuk memanggil GetClusterCredentials
tindakan secara terprogram, Anda memerlukan set izin minimum. Minimal, Anda memerlukan izin untuk memanggil redshift:GetClusterCredentials
tindakan dengan akses ke dbuser
sumber daya.
Jika Anda menggunakan koneksi JDBC atau ODBC, bukan server
dan port
Anda dapat menentukan cluster_id
danregion
, tetapi untuk melakukannya kebijakan Anda harus mengizinkan redshift:DescribeClusters
tindakan dengan akses ke sumber daya. cluster
Jika Anda memanggil GetClusterCredentials
dengan parameter opsional Autocreate
DbGroups
,DbName
, dan, pastikan juga mengizinkan tindakan dan mengizinkan akses ke sumber daya yang tercantum dalam tabel berikut.
GetClusterCredentials parameter |
Tindakan |
Sumber Daya |
---|---|---|
|
redshift:CreateClusterUser |
|
|
redshift:JoinGroup |
|
|
TA | dbname |
Untuk informasi selengkapnya tentang sumber daya, lihatSumber daya dan operasi Amazon Redshift.
Anda juga dapat memasukkan ketentuan berikut dalam polis Anda:
-
redshift:DurationSeconds
-
redshift:DbName
-
redshift:DbUser
Untuk informasi lebih lanjut tentang syarat, lihat Menentukan kondisi dalam kebijakan.
Contoh kebijakan yang dikelola pelanggan
Di bagian ini, Anda dapat menemukan contoh kebijakan pengguna yang memberikan izin untuk berbagai tindakan Amazon Redshift. Kebijakan ini berfungsi saat Anda menggunakan Amazon Redshift API, AWS SDK, atau file. AWS CLI
catatan
Semua contoh menggunakan Region US West (Oregon) (us-west-2
) dan berisi ID akun fiktif.
Contoh 1: Izinkan pengguna akses penuh ke semua tindakan dan sumber daya Amazon Redshift
Kebijakan berikut memungkinkan akses ke semua tindakan Amazon Redshift di semua sumber daya.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "*" } ] }
Nilai redshift:*
dalam Action
elemen menunjukkan semua tindakan di Amazon Redshift.
Contoh 2: Tolak akses pengguna ke serangkaian tindakan Amazon Redshift
Secara default, semua izin ditolak. Namun, terkadang Anda perlu secara eksplisit menolak akses ke tindakan atau serangkaian tindakan tertentu. Kebijakan berikut memungkinkan akses ke semua tindakan Amazon Redshift dan secara eksplisit menolak akses ke tindakan Amazon Redshift di mana nama dimulai. Delete
Kebijakan ini berlaku untuk semua sumber daya Amazon Redshift di. us-west-2
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowUSWest2Region", "Action": [ "redshift:*" ], "Effect": "Allow", "Resource": "arn:aws:redshift:us-west-2:*" }, { "Sid":"DenyDeleteUSWest2Region", "Action": [ "redshift:Delete*" ], "Effect": "Deny", "Resource": "arn:aws:redshift:us-west-2:*" } ] }
Contoh 3: Izinkan pengguna untuk mengelola cluster
Kebijakan berikut memungkinkan pengguna untuk membuat, menghapus, memodifikasi, dan me-reboot semua cluster, lalu menolak izin untuk menghapus klaster mana pun di mana nama cluster dimulai. protected
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowClusterManagement", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"DenyDeleteProtected", "Action": [ "redshift:DeleteCluster" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:cluster:protected*" ], "Effect": "Deny" } ] }
Contoh 4: Izinkan pengguna untuk mengotorisasi dan mencabut akses snapshot
Kebijakan berikut memungkinkan pengguna, misalnya Pengguna A, untuk melakukan hal berikut:
-
Otorisasi akses ke snapshot apa pun yang dibuat dari cluster bernama.
shared
-
Cabut akses snapshot untuk snapshot apa pun yang dibuat dari
shared
cluster tempat nama snapshot dimulai.revokable
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowSharedSnapshots", "Action": [ "redshift:AuthorizeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:shared/*" ], "Effect": "Allow" }, { "Sid":"AllowRevokableSnapshot", "Action": [ "redshift:RevokeSnapshotAccess" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/revokable*" ], "Effect": "Allow" } ] }
Jika Pengguna A telah mengizinkan Pengguna B mengakses snapshot, Pengguna B harus memiliki kebijakan seperti berikut ini untuk mengizinkan Pengguna B memulihkan klaster dari snapshot. Kebijakan berikut memungkinkan Pengguna B untuk mendeskripsikan dan memulihkan dari snapshot, dan membuat cluster. Nama cluster ini harus dimulai denganfrom-other-account
.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowDescribeSnapshots", "Action": [ "redshift:DescribeClusterSnapshots" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Sid":"AllowUserRestoreFromSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/*", "arn:aws:redshift:us-west-2:444455556666:cluster:from-other-account*" ], "Effect": "Allow" } ] }
Contoh 5: Izinkan pengguna menyalin snapshot cluster dan memulihkan cluster dari snapshot
Kebijakan berikut memungkinkan pengguna untuk menyalin snapshot apa pun yang dibuat dari klaster bernamabig-cluster-1
, dan memulihkan snapshot apa pun tempat nama snapshot dimulai. snapshot-for-restore
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowCopyClusterSnapshot", "Action": [ "redshift:CopyClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:big-cluster-1/*" ], "Effect": "Allow" }, { "Sid":"AllowRestoreFromClusterSnapshot", "Action": [ "redshift:RestoreFromClusterSnapshot" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:snapshot:*/snapshot-for-restore*", "arn:aws:redshift:us-west-2:123456789012:cluster:*" ], "Effect": "Allow" } ] }
Contoh 6: Izinkan pengguna mengakses Amazon Redshift, serta tindakan serta sumber daya umum untuk layanan terkait AWS
Kebijakan contoh berikut memungkinkan akses ke semua tindakan dan sumber daya untuk Amazon Redshift, Amazon Simple Notification Service (Amazon SNS), dan Amazon. CloudWatch Ini juga memungkinkan tindakan yang ditentukan pada semua sumber daya Amazon EC2 terkait di bawah akun.
catatan
Izin tingkat sumber daya tidak didukung untuk tindakan Amazon EC2 yang ditentukan dalam kebijakan contoh ini.
{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowRedshift", "Effect": "Allow", "Action": [ "redshift:*" ], "Resource": [ "*" ] }, { "Sid":"AllowSNS", "Effect": "Allow", "Action": [ "sns:*" ], "Resource": [ "*" ] }, { "Sid":"AllowCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:*" ], "Resource": [ "*" ] }, { "Sid":"AllowEC2Actions", "Effect": "Allow", "Action": [ "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeInternetGateways", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": [ "*" ] } ] }
Contoh 7: Izinkan pengguna menandai sumber daya dengan konsol Amazon Redshift
Kebijakan contoh berikut memungkinkan pengguna untuk menandai sumber daya dengan konsol Amazon Redshift menggunakan. AWS Resource Groups Kebijakan ini dapat dilampirkan ke peran pengguna yang memanggil konsol Amazon Redshift baru atau asli. Untuk informasi lebih lanjut tentang penandaan, lihat Menandai sumber daya di Amazon Redshift.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Tagging permissions", "Effect": "Allow", "Action": [ "redshift:DeleteTags", "redshift:CreateTags", "redshift:DescribeTags", "tag:UntagResources", "tag:TagResources" ], "Resource": "*" } ] }
Contoh kebijakan untuk menggunakan GetClusterCredentials
Kebijakan berikut menggunakan nilai parameter sampel ini:
-
Wilayah:
us-west-2
-
AWS Akun:
123456789012
-
Nama cluster:
examplecluster
Kebijakan berikut memungkinkanGetCredentials
,CreateClusterUser
, dan JoinGroup
tindakan. Kebijakan ini menggunakan kunci kondisi untuk mengizinkan GetClusterCredentials
dan CreateClusterUser
tindakan hanya jika ID AWS pengguna cocok"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com"
. Akses IAM diminta untuk "testdb"
database saja. Kebijakan ini juga memungkinkan pengguna untuk bergabung dengan grup bernama"common_group"
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetClusterCredsStatement", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}", "arn:aws:redshift:us-west-2:123456789012:dbname:examplecluster/testdb", "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid": "CreateClusterUserStatement", "Effect": "Allow", "Action": [ "redshift:CreateClusterUser" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/${redshift:DbUser}" ], "Condition": { "StringEquals": { "aws:userid":"AIDIODR4TAW7CSEXAMPLE:${redshift:DbUser}@yourdomain.com" } } }, { "Sid": "RedshiftJoinGroupStatement", "Effect": "Allow", "Action": [ "redshift:JoinGroup" ], "Resource": [ "arn:aws:redshift:us-west-2:123456789012:dbgroup:examplecluster/common_group" ] } ] }