Mengonfigurasi kebijakan akses untuk Wawasan Performa - Amazon Aurora

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

Mengonfigurasi kebijakan akses untuk Wawasan Performa

Untuk mengakses Performance Insights, prinsipal harus memiliki izin yang sesuai dari AWS Identity and Access Management (IAM). Anda dapat memberikan akses dengan cara berikut:

  • Melampirkan kebijakan AmazonRDSPerformanceInsightsReadOnly terkelola ke kumpulan izin atau peran untuk mengakses semua operasi hanya-baca dari API Wawasan Performa.

  • Melampirkan kebijakan AmazonRDSPerformanceInsightsFullAccess terkelola ke kumpulan izin atau peran untuk mengakses semua operasi API Wawasan Performa.

  • Membuat kebijakan IAM kustom dan melampirkannya ke kumpulan izin atau peran.

Jika Anda menetapkan kunci terkelola pelanggan saat mengaktifkan Performance Insights, pastikan bahwa pengguna di akun Anda memiliki kms:GenerateDataKey izin kms:Decrypt dan di AWS KMS key

Melampirkan AmazonRDSPerformanceInsightsReadOnly kebijakan ke kepala IAM

AmazonRDSPerformanceInsightsReadOnlyadalah kebijakan AWS terkelola yang memberikan akses ke semua operasi hanya-baca dari Amazon RDS Performance Insights API.

Jika Anda melampirkan AmazonRDSPerformanceInsightsReadOnly ke kumpulan izin atau peran, penerima dapat menggunakan Wawasan Performa beserta fitur konsol lainnya.

Untuk informasi selengkapnya, lihat AWS kebijakan terkelola: AmazonRDS PerformanceInsightsReadOnly.

Melampirkan AmazonRDSPerformanceInsightsFullAccess kebijakan ke kepala IAM

AmazonRDSPerformanceInsightsFullAccessadalah kebijakan AWS terkelola yang memberikan akses ke semua operasi Amazon RDS Performance Insights API.

Jika Anda melampirkan AmazonRDSPerformanceInsightsFullAccess ke kumpulan izin atau peran, penerima dapat menggunakan Wawasan Performa beserta fitur konsol lainnya.

Untuk informasi selengkapnya, lihat AWS kebijakan terkelola: AmazonRDS PerformanceInsightsFullAccess.

Membuat kebijakan IAM kustom untuk Wawasan Performa

Untuk pengguna yang tidak memiliki AmazonRDSPerformanceInsightsFullAccess kebijakan AmazonRDSPerformanceInsightsReadOnly atau kebijakan, Anda dapat memberikan akses ke Performance Insights dengan membuat atau memodifikasi kebijakan IAM yang dikelola pengguna. Jika Anda melampirkan kebijakan ini ke kumpulan izin atau peran IAM, penerima dapat menggunakan Wawasan Performa.

Untuk membuat kebijakan kustom
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Kebijakan.

  3. Pilih Buat kebijakan.

  4. Pada halaman Create Policy, pilih opsi JSON.

  5. Salin dan tempel teks yang disediakan di bagian dokumen kebijakan JSON di Panduan Referensi Kebijakan AWS Terkelola untuk AmazonRDSPerformanceInsightsReadOnlyatau AmazonRDSPerformanceInsightsFullAccesskebijakan.

  6. Pilih Tinjau kebijakan.

  7. Berikan nama untuk kebijakan tersebut dan secara opsional deskripsi, lalu pilih Buat kebijakan.

Sekarang, Anda dapat menyisipkan kebijakan ke kumpulan izin atau peran. Prosedur berikut mengasumsikan bahwa Anda sudah memiliki pengguna yang tersedia untuk tujuan ini.

Untuk melampirkan kebijakan ini ke pengguna
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Pengguna.

  3. Pilih pengguna yang ada dari daftar.

    penting

    Untuk menggunakan Wawasan Performa, pastikan Anda memiliki akses ke Amazon RDS selain ke kebijakan kustom. Misalnya, kebijakan AmazonRDSPerformanceInsightsReadOnly yang ditentukan sebelumnya memberikan akses hanca-baca ke Amazon RDS. Untuk informasi selengkapnya, lihat Mengelola akses menggunakan kebijakan.

  4. Di halaman Ringkasan, pilih Tambahkan izin.

  5. Pilih Lampirkan kebijakan yang sudah ada secara langsung. Untuk Penelusuran, ketik beberapa karakter pertama dari nama kebijakan Anda, seperti yang ditunjukkan pada gambar berikut.

    Pilih Kebijakan
  6. Pilih kebijakan Anda, lalu pilih Berikutnya: Tinjauan.

  7. Pilih Tambahkan izin.

Mengonfigurasi kebijakan AWS KMS untuk Wawasan Performa

Performance Insights menggunakan perangkat AWS KMS key untuk mengenkripsi data sensitif. Saat mengaktifkan Wawasan Performa melalui API atau konsol, Anda dapat melakukan salah satu tindakan berikut:

  • Pilih default Kunci yang dikelola AWS.

    Amazon RDS menggunakan instans DB baru Anda. Kunci yang dikelola AWS Amazon RDS membuat Kunci yang dikelola AWS untuk Akun AWS Anda. Anda Akun AWS memiliki yang berbeda Kunci yang dikelola AWS untuk Amazon RDS untuk masing-masing Wilayah AWS.

  • Memilih kunci yang dikelola pelanggan.

    Jika Anda menentukan kunci yang dikelola pelanggan, pengguna di akun Anda yang memanggil API Wawasan Performa memerlukan izin kms:Decrypt dan kms:GenerateDataKey pada kunci KMS. Anda dapat mengonfigurasi izin ini melalui kebijakan IAM. Namun, sebaiknya Anda mengelola izin ini melalui kebijakan kunci KMS Anda. Untuk informasi selengkapnya, lihat Kebijakan kunci di AWS KMS di Panduan Developer AWS Key Management Service .

Contoh berikut menunjukkan cara menambahkan pernyataan ke kebijakan kunci KMS Anda. Pernyataan ini mengizinkan akses ke Wawasan Performa. Bergantung pada bagaimana Anda menggunakan kunci KMS, sebaiknya Anda mengubah beberapa pembatasan. Sebelum menambahkan pernyataan ke kebijakan, hapus semua komentar.

{ "Version" : "2012-10-17", "Id" : "your-policy", "Statement" : [ { //This represents a statement that currently exists in your policy. } ...., //Starting here, add new statement to your policy for Performance Insights. //We recommend that you add one new statement for every RDS instance { "Sid" : "Allow viewing RDS Performance Insights", "Effect": "Allow", "Principal": { "AWS": [ //One or more principals allowed to access Performance Insights "arn:aws:iam::444455556666:role/Role1" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition" : { "StringEquals" : { //Restrict access to only RDS APIs (including Performance Insights). //Replace region with your AWS Region. //For example, specify us-west-2. "kms:ViaService" : "rds.region.amazonaws.com" }, "ForAnyValue:StringEquals": { //Restrict access to only data encrypted by Performance Insights. "kms:EncryptionContext:aws:pi:service": "rds", "kms:EncryptionContext:service": "pi", //Restrict access to a specific RDS instance. //The value is a DbiResourceId. "kms:EncryptionContext:aws:rds:db-id": "db-AAAAABBBBBCCCCDDDDDEEEEE" } } }

Bagaimana Performance Insights menggunakan kunci yang dikelola AWS KMS pelanggan

Wawasan Performa menggunakan kunci yang dikelola pelanggan untuk mengenkripsi data sensitif. Jika mengaktifkan Wawasan Performa, Anda dapat memberikan kunci AWS KMS melalui API. Wawasan Performa membuat izin KMS pada kunci ini. Ini menggunakan kunci dan melakukan operasi yang diperlukan untuk memproses data sensitif. Data sensitif mencakup kolom-kolom seperti pengguna, basis data, aplikasi, dan teks kueri SQL. Wawasan Performa memastikan bahwa data tetap terenkripsi baik saat tidak aktif maupun saat transit.

Cara kerja Performance Insights IAM AWS KMS

IAM memberikan izin ke API tertentu. Wawasan Performa memiliki API publik berikut, yang dapat Anda batasi menggunakan kebijakan IAM:

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

  • GetResourceMetadata

  • GetResourceMetrics

  • ListAvailableResourceDimensions

  • ListAvailableResourceMetrics

Anda dapat menggunakan permintaan API berikut untuk mendapatkan data sensitif.

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

  • GetResourceMetrics

Saat Anda menggunakan API untuk mendapatkan data sensitif, Wawasan Performa memanfaatkan kredensial pemanggil. Pemeriksaan ini memastikan bahwa akses ke data sensitif dibatasi pada mereka yang memiliki akses ke kunci KMS.

Saat memanggil API ini, Anda memerlukan izin untuk memanggil API melalui kebijakan IAM dan izin untuk menjalankan kms:decrypt tindakan melalui kebijakan utama. AWS KMS

API GetResourceMetrics dapat menampilkan data sensitif dan non-sensitif. Parameter permintaan menentukan apakah respons harus menyertakan data sensitif. API menampilkan data sensitif ketika permintaan menyertakan dimensi sensitif baik dalam parameter filter atau kelompokkan-menurut.

Untuk informasi selengkapnya tentang dimensi yang dapat Anda gunakan dengan GetResourceMetrics API, lihat DimensionGroup.

contoh Contoh

Contoh berikut meminta data sensitif untuk grup db.user:

POST / HTTP/1.1 Host: <Hostname> Accept-Encoding: identity X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics Content-Type: application/x-amz-json-1.1 User-Agent: <UserAgentString> X-Amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "MetricQueries": [ { "Metric": "db.load.avg", "GroupBy": { "Group": "db.user", "Limit": 2 } } ], "StartTime": 1693872000, "EndTime": 1694044800, "PeriodInSeconds": 86400 }

Contoh berikut meminta data non-sensitif untuk metrik db.load.avg:

POST / HTTP/1.1 Host: <Hostname> Accept-Encoding: identity X-Amz-Target: PerformanceInsightsv20180227.GetResourceMetrics Content-Type: application/x-amz-json-1.1 User-Agent: <UserAgentString> X-Amz-Date: <Date> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "MetricQueries": [ { "Metric": "db.load.avg" } ], "StartTime": 1693872000, "EndTime": 1694044800, "PeriodInSeconds": 86400 }

Memberikan akses berbutir halus untuk Performance Insights

Kontrol akses berbutir halus menawarkan cara tambahan untuk mengontrol akses ke Performance Insights. Kontrol akses ini dapat mengizinkan atau menolak akses ke dimensi individual untuk GetResourceMetricsDescribeDimensionKeys, dan tindakan GetDimensionKeyDetails Performance Insights. Untuk menggunakan akses berbutir halus, tentukan dimensi dalam kebijakan IAM dengan menggunakan tombol kondisi. Evaluasi akses mengikuti logika evaluasi kebijakan IAM. Untuk informasi selengkapnya, lihat Logika evaluasi kebijakan di Panduan Pengguna IAM. Jika pernyataan kebijakan IAM tidak menentukan dimensi apa pun, maka pernyataan tersebut mengontrol akses ke semua dimensi untuk tindakan yang ditentukan. Untuk daftar dimensi yang tersedia, lihat DimensionGroup.

Untuk mengetahui dimensi yang diizinkan untuk diakses oleh kredensi Anda, gunakan AuthorizedActions parameter ListAvailableResourceDimensions dan tentukan tindakannya. Nilai yang diizinkan untuk AuthorizedActions adalah sebagai berikut:

  • GetResourceMetrics

  • DescribeDimensionKeys

  • GetDimensionKeyDetails

Misalnya, jika Anda GetResourceMetrics menentukan AuthorizedActions parameter, ListAvailableResourceDimensions mengembalikan daftar dimensi yang diizinkan untuk diakses oleh GetResourceMetrics tindakan. Jika Anda menentukan beberapa tindakan dalam AuthorizedActions parameter, kemudian ListAvailableResourceDimensions mengembalikan persimpangan dimensi bahwa tindakan tersebut diizinkan untuk mengakses.

Contoh berikut menyediakan akses ke dimensi yang ditentukan untuk GetResourceMetrics dan DescribeDimensionKeys tindakan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowToDiscoverDimensions", "Effect": "Allow", "Action": [ "pi:ListAvailableResourceDimensions" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ] }, { "Sid": "SingleAllow", "Effect": "Allow", "Action": [ "pi:GetResourceMetrics", "pi:DescribeDimensionKeys" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ], "Condition": { "ForAllValues:StringEquals": { // only these dimensions are allowed. Dimensions not included in // a policy with "Allow" effect will be denied "pi:Dimensions": [ "db.sql_tokenized.id", "db.sql_tokenized.statement" ] } } } ] }

Berikut ini adalah respons untuk dimensi yang diminta:

// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["DescribeDimensionKeys"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, // { "Identifier": "db.sql_tokenized.db_id" }, // not included because not allows in the IAM Policy { "Identifier": "db.sql_tokenized.statement" } ] } ] } ] }

Contoh berikut menentukan satu izinkan dan dua tolak akses untuk dimensi.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowToDiscoverDimensions", "Effect": "Allow", "Action": [ "pi:ListAvailableResourceDimensions" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ] }, { "Sid": "O01AllowAllWithoutSpecifyingDimensions", "Effect": "Allow", "Action": [ "pi:GetResourceMetrics", "pi:DescribeDimensionKeys" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ] }, { "Sid": "O01DenyAppDimensionForAll", "Effect": "Deny", "Action": [ "pi:GetResourceMetrics", "pi:DescribeDimensionKeys" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ], "Condition": { "ForAnyValue:StringEquals": { "pi:Dimensions": [ "db.application.name" ] } } }, { "Sid": "O01DenySQLForGetResourceMetrics", "Effect": "Deny", "Action": [ "pi:GetResourceMetrics" ], "Resource": [ "arn:aws:pi:us-east-1:123456789012:metrics/rds/db-ABC1DEFGHIJKL2MNOPQRSTUV3W" ], "Condition": { "ForAnyValue:StringEquals": { "pi:Dimensions": [ "db.sql_tokenized.statement" ] } } } ] }

Berikut ini adalah tanggapan untuk dimensi yang diminta:

// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["GetResourceMetrics"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.application", "Dimensions": [ // removed from response because denied by the IAM Policy // { "Identifier": "db.application.name" } ] }, { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, { "Identifier": "db.sql_tokenized.db_id" }, // removed from response because denied by the IAM Policy // { "Identifier": "db.sql_tokenized.statement" } ] }, ... ] } ] }
// ListAvailableResourceDimensions API // Request { "ServiceType": "RDS", "Identifier": "db-ABC1DEFGHIJKL2MNOPQRSTUV3W", "Metrics": [ "db.load" ], "AuthorizedActions": ["DescribeDimensionKeys"] } // Response { "MetricDimensions": [ { "Metric": "db.load", "Groups": [ { "Group": "db.application", "Dimensions": [ // removed from response because denied by the IAM Policy // { "Identifier": "db.application.name" } ] }, { "Group": "db.sql_tokenized", "Dimensions": [ { "Identifier": "db.sql_tokenized.id" }, { "Identifier": "db.sql_tokenized.db_id" }, // allowed for DescribeDimensionKeys because our IAM Policy // denies it only for GetResourceMetrics { "Identifier": "db.sql_tokenized.statement" } ] }, ... ] } ] }