Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS Database Migration Service contoh kebijakan berbasis identitas
Secara default, pengguna dan peran IAM tidak memiliki izin untuk membuat atau mengubah sumber daya AWS DMS . Mereka juga tidak dapat melakukan tugas menggunakan AWS Management Console, AWS CLI, atau AWS API. IAMAdministrator harus membuat IAM kebijakan yang memberikan izin kepada pengguna dan peran untuk melakukan API operasi tertentu pada sumber daya tertentu yang mereka butuhkan. Administrator kemudian harus melampirkan kebijakan tersebut ke pengguna atau grup IAM yang memerlukan izin tersebut.
Untuk mempelajari cara membuat kebijakan IAM berbasis identitas menggunakan contoh dokumen JSON kebijakan ini, lihat Membuat kebijakan pada JSON tab di Panduan Pengguna. IAM
Topik
Praktik terbaik kebijakan
Kebijakan berbasis identitas menentukan apakah seseorang dapat membuat, mengakses, atau menghapus AWS DMS sumber daya di akun Anda. Tindakan ini membuat Akun AWS Anda dikenai biaya. Ketika Anda membuat atau mengedit kebijakan berbasis identitas, ikuti panduan dan rekomendasi ini:
-
Mulailah dengan kebijakan AWS terkelola dan beralih ke izin hak istimewa paling sedikit — Untuk mulai memberikan izin kepada pengguna dan beban kerja Anda, gunakan kebijakan AWS terkelola yang memberikan izin untuk banyak kasus penggunaan umum. Mereka tersedia di Anda Akun AWS. Kami menyarankan Anda mengurangi izin lebih lanjut dengan menentukan kebijakan yang dikelola AWS pelanggan yang khusus untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat kebijakan AWSAWS terkelola atau kebijakan terkelola untuk fungsi pekerjaan di Panduan IAM Pengguna.
-
Menerapkan izin hak istimewa paling sedikit — Saat Anda menetapkan izin dengan IAM kebijakan, berikan hanya izin yang diperlukan untuk melakukan tugas. Anda melakukannya dengan mendefinisikan tindakan yang dapat diambil pada sumber daya tertentu dalam kondisi tertentu, yang juga dikenal sebagai izin dengan hak akses paling rendah. Untuk informasi selengkapnya tentang penggunaan IAM untuk menerapkan izin, lihat Kebijakan dan izin IAM di IAM Panduan Pengguna.
-
Gunakan ketentuan dalam IAM kebijakan untuk membatasi akses lebih lanjut — Anda dapat menambahkan kondisi ke kebijakan Anda untuk membatasi akses ke tindakan dan sumber daya. Misalnya, Anda dapat menulis kondisi kebijakan untuk menentukan bahwa semua permintaan harus dikirim menggunakanSSL. Anda juga dapat menggunakan ketentuan untuk memberikan akses ke tindakan layanan jika digunakan melalui yang spesifik Layanan AWS, seperti AWS CloudFormation. Untuk informasi selengkapnya, lihat elemen IAM JSON kebijakan: Kondisi dalam Panduan IAM Pengguna.
-
Gunakan IAM Access Analyzer untuk memvalidasi IAM kebijakan Anda guna memastikan izin yang aman dan fungsional — IAM Access Analyzer memvalidasi kebijakan baru dan yang sudah ada sehingga kebijakan mematuhi bahasa IAM kebijakan () JSON dan praktik terbaik. IAM IAM Access Analyzer menyediakan lebih dari 100 pemeriksaan kebijakan dan rekomendasi yang dapat ditindaklanjuti untuk membantu Anda membuat kebijakan yang aman dan fungsional. Untuk informasi selengkapnya, lihat Memvalidasi kebijakan dengan IAM Access Analyzer di IAMPanduan Pengguna.
-
Memerlukan otentikasi multi-faktor (MFA) - Jika Anda memiliki skenario yang mengharuskan IAM pengguna atau pengguna root di Anda Akun AWS, aktifkan MFA untuk keamanan tambahan. Untuk meminta MFA kapan API operasi dipanggil, tambahkan MFA kondisi ke kebijakan Anda. Untuk informasi selengkapnya, lihat APIAkses aman dengan MFA di Panduan IAM Pengguna.
Untuk informasi selengkapnya tentang praktik terbaik diIAM, lihat Praktik terbaik keamanan IAM di Panduan IAM Pengguna.
Menggunakan konsol AWS DMS
Kebijakan berikut memberi Anda akses ke AWS DMS, termasuk AWS DMS konsol, dan juga menentukan izin untuk tindakan tertentu yang diperlukan dari layanan Amazon lainnya seperti Amazon. EC2
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "arn:aws:dms:
region
:account
:resourcetype
/id
" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "arn:aws:service
:region
:account
:resourcetype
/id
" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:service
:region
:account
:resourcetype
/id
" }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:service
:region
:account
:resourcetype
/id
" }, { "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "arn:aws:service
:region
:account
:resourcetype
/id
" }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:service
:region
:account
:resourcetype
/id
" } ] }
Perincian izin ini dapat membantu Anda lebih memahami mengapa masing-masing izin diperlukan untuk menggunakan konsol tersebut.
Bagian berikut ini diperlukan untuk mengizinkan pengguna untuk membuat daftar kunci AWS KMS yang tersedia dan alias untuk ditampilkan di konsol. Entri ini tidak diperlukan jika Anda mengetahui Amazon Resource Name (ARN) untuk KMS kunci dan Anda hanya menggunakan AWS Command Line Interface (AWS CLI).
{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "arn:aws:
service
:region
:account
:resourcetype
/id
" }
Bagian berikut diperlukan untuk jenis titik akhir tertentu yang memerlukan peran ARN untuk diteruskan dengan titik akhir. Selain itu, jika AWS DMS peran yang diperlukan tidak dibuat sebelumnya, AWS DMS konsol memiliki kemampuan untuk membuat peran. Jika semua peran dikonfigurasi sebelumnya, yang diperlukan adalah iam:GetRole
dan iam:PassRole
. Untuk informasi lebih lanjut tentang peran, lihat Membuat IAM peran untuk digunakan dengan AWS DMS.
{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:
service
:region
:account
:resourcetype
/id
" }
Bagian berikut diperlukan karena AWS DMS perlu membuat EC2 instance Amazon dan mengkonfigurasi jaringan untuk instance replikasi yang dibuat. Sumber daya ini ada di akun pelanggan, sehingga kemampuan untuk melakukan tindakan ini atas nama pelanggan diperlukan.
{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:
service
:region
:account
:resourcetype
/id
" }
Bagian berikut diperlukan untuk mengizinkan pengguna untuk dapat melihat metrik instans replikasi.
{ "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "arn:aws:
service
:region
:account
:resourcetype
/id
" }
Bagian ini diperlukan untuk mengizinkan pengguna untuk melihat log replikasi.
{ "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:
service
:region
:account
:resourcetype
/id
" }
Jika Anda menggunakan AWS DMS konsol, AWS Command Line Interface (AWS CLI) atau AWS DMS API untuk migrasi Anda, Anda perlu menambahkan beberapa peran ke akun Anda. Untuk informasi lebih lanjut tentang menambahkan peran ini, lihat Membuat IAM peran untuk digunakan dengan AWS DMS.
Untuk informasi selengkapnya tentang persyaratan penggunaan kebijakan ini untuk mengakses AWS DMS, lihatIAMizin yang diperlukan untuk menggunakan AWS DMS.
Mengizinkan pengguna melihat izin mereka sendiri
Contoh ini menunjukkan cara Anda membuat kebijakan yang memungkinkan IAM pengguna melihat kebijakan sebaris dan terkelola yang dilampirkan pada identitas pengguna mereka. Kebijakan ini mencakup izin untuk menyelesaikan tindakan ini di konsol atau secara terprogram menggunakan atau. AWS CLI AWS API
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
Mengakses satu bucket Amazon S3
AWS DMSmenggunakan bucket Amazon S3 sebagai penyimpanan perantara untuk migrasi database. Biasanya, AWS DMS mengelola bucket S3 default untuk tujuan ini. Namun, dalam kasus tertentu, terutama ketika Anda menggunakan AWS CLI atau AWS DMSAPI, AWS DMS memungkinkan Anda untuk menentukan bucket S3 Anda sendiri sebagai gantinya. Misalnya, Anda dapat menentukan bucket S3 Anda sendiri untuk memigrasi data ke titik akhir target Amazon Redshift. Dalam hal ini, Anda perlu membuat peran dengan izin berdasarkan kebijakan AWS-managedAmazonDMSRedshiftS3Role
.
Contoh berikut menunjukkan sebuah versi kebijakan AmazonDMSRedshiftS3Role
. Ini memungkinkan AWS DMS untuk memberikan IAM pengguna di AWS akun Anda akses ke salah satu bucket Amazon S3 Anda. Hal ini juga memungkinkan pengguna untuk menambahkan, memperbarui, dan menghapus objek.
Selain memberikan izin s3:PutObject
, s3:GetObject
, dan s3:DeleteObject
bagi pengguna, kebijakan tersebut juga memberikan izin s3:ListAllMyBuckets
, s3:GetBucketLocation
, dan s3:ListBucket
. Izin-izin tersebut adalah izin tambahan yang diperlukan oleh konsol tersebut. Izin lain memungkinkan AWS DMS untuk mengelola siklus hidup bucket. Selain itu, tindakan s3:GetObjectAcl
diperlukan untuk dapat menyalin objek.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:ListBucket", "s3:DeleteBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetBucketPolicy", "s3:PutBucketPolicy", "s3:GetBucketAcl", "s3:PutBucketVersioning", "s3:GetBucketVersioning", "s3:PutLifecycleConfiguration", "s3:GetLifecycleConfiguration", "s3:DeleteBucketPolicy" ], "Resource": "arn:aws:s3:::dms-*" } ] }
Untuk informasi lebih lanjut tentang cara membuat peran berdasarkan kebijakan ini, lihat Pengaturan bucket Amazon S3.
Mengakses sumber daya AWS DMS berdasarkan tag
Anda dapat menggunakan ketentuan dalam kebijakan berbasis identitas Anda untuk mengontrol akses ke sumber daya AWS DMS berdasarkan tag. Contoh ini menunjukkan cara membuat kebijakan yang memungkinkan akses ke semua AWS DMS titik akhir. Namun, izin diberikan hanya jika tag basis data titik akhir Owner
memiliki nilai nama pengguna dari pengguna tersebut.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "arn:aws:dms:*:*:endpoint/*", "Condition": { "StringEquals": {"dms:endpoint-tag/Owner": "${aws:username}"} } } ] }
Anda dapat melampirkan kebijakan ini ke pengguna IAM di akun Anda. Jika pengguna bernama richard-roe
mencoba mengakses AWS DMS titik akhir, database endpoint harus diberi tag Owner=richard-roe
atau. owner=richard-roe
Jika tidak, akses pengguna ini ditolak. Kunci tag kondisi Owner
cocok dengan Owner
dan owner
karena nama kunci kondisi tidak terpengaruh huruf besar/kecil. Untuk informasi selengkapnya, lihat elemen IAM JSON kebijakan: Kondisi dalam Panduan IAM Pengguna.