Enkripsi data saat istirahat di Step Functions - AWS Step Functions

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

Enkripsi data saat istirahat di Step Functions

Baca blognya

Baca tentang kunci yang dikelola pelanggan dalam Memperkuat keamanan data dengan kunci yang dikelola pelanggan AWS KMS

AWS Step Functions selalu mengenkripsi data Anda saat istirahat menggunakan enkripsi sisi server transparan. Enkripsi data saat istirahat secara default mengurangi overhead operasional dan kompleksitas yang terlibat dalam melindungi data sensitif. Anda dapat membangun aplikasi yang sensitif terhadap keamanan yang memenuhi kepatuhan enkripsi dan persyaratan peraturan yang ketat.

Meskipun Anda tidak dapat menonaktifkan lapisan enkripsi ini atau memilih jenis enkripsi alternatif, Anda dapat menambahkan lapisan enkripsi kedua di atas kunci enkripsi AWS milik yang ada dengan memilih kunci yang dikelola pelanggan saat Anda membuat mesin status dan sumber daya aktivitas:

  • Kunci terkelola pelanggan — Step Functions mendukung penggunaan kunci terkelola pelanggan simetris yang Anda buat, miliki, dan kelola untuk menambahkan lapisan enkripsi kedua melalui enkripsi AWS milik yang ada. Karena Anda memiliki kontrol penuh atas lapisan enkripsi ini, Anda dapat melakukan tugas-tugas seperti:

    • Menetapkan dan memelihara kebijakan utama

    • Menetapkan dan memelihara IAM kebijakan dan hibah

    • Mengaktifkan dan menonaktifkan kebijakan utama

    • Memutar bahan kriptografi kunci

    • Menambahkan tanda

    • Membuat alias kunci

    • Kunci penjadwalan untuk penghapusan

    Untuk selengkapnya, lihat kunci terkelola pelanggan di Panduan AWS Key Management Service Pengembang.

Anda dapat mengenkripsi data menggunakan kunci yang dikelola pelanggan untuk mesin dan aktivitas AWS Step Functions status. Anda dapat mengonfigurasi periode penggunaan kembali AWS KMS kunci simetris dan kunci data saat membuat atau memperbarui State Machine, dan saat membuat Aktivitas. Riwayat eksekusi dan definisi mesin status akan dienkripsi dengan kunci yang diterapkan ke State Machine. Input aktivitas akan dienkripsi dengan kunci yang diterapkan ke Aktivitas.

Dengan AWS KMS kunci yang dikelola pelanggan, Anda dapat mengamankan data pelanggan yang mencakup informasi kesehatan yang dilindungi (PHI) dari akses yang tidak sah. Step Functions terintegrasi dengan CloudTrail, sehingga Anda dapat melihat dan mengaudit peristiwa terbaru di CloudTrail konsol dalam riwayat acara.

Untuk informasi tentang AWS KMS, lihat Apa itu AWS Key Management Service?

catatan

Step Functions secara otomatis mengaktifkan enkripsi saat istirahat menggunakan kunci yang AWS dimiliki tanpa biaya. Namun, AWS KMS biaya berlaku saat menggunakan kunci yang dikelola pelanggan. Untuk informasi lebih lanjut tenngenai harga, lihat harga AWS Key Management Service.

Mengenkripsi dengan kunci yang dikelola pelanggan

Step Functions mendekripsi data payload dengan AWS KMS kunci terkelola pelanggan Anda sebelum meneruskannya ke layanan lain untuk melakukan tugas. Data dienkripsi dalam perjalanan menggunakan Transport Layer Security ()TLS.

Ketika data dikembalikan dari layanan terintegrasi, Step Functions mengenkripsi data dengan kunci terkelola AWS KMS pelanggan Anda. Anda dapat menggunakan kunci yang sama untuk menerapkan enkripsi secara konsisten di banyak AWS layanan.

Anda dapat menggunakan kunci yang dikelola pelanggan dengan sumber daya berikut:

  • State Machine - tipe alur kerja Standar dan Ekspres

  • Aktivitas

Anda dapat menentukan kunci data dengan memasukkan ID KMS kunci, yang digunakan Step Functions untuk mengenkripsi data Anda.

  • KMSID kunci — pengidentifikasi kunci untuk kunci yang dikelola AWS KMS pelanggan dalam bentuk ID kunci, kunci, nama aliasARN, atau alias. ARN

Buat State Machine dengan kunci yang dikelola pelanggan

Prasyarat: Sebelum Anda dapat membuat mesin status dengan AWS KMS kunci yang dikelola pelanggan, pengguna atau peran Anda harus memiliki AWS KMS izin untuk dan. DescribeKey GenerateDataKey

Anda dapat melakukan langkah-langkah berikut di AWS konsol, melaluiAPI, atau dengan menyediakan infrastruktur melalui AWS CloudFormation sumber daya. (CloudFormation contoh disajikan nanti dalam panduan ini.)

Langkah 1: Buat AWS KMS kunci

Anda dapat membuat kunci terkelola pelanggan simetris dengan AWS KMS konsol atau AWS KMS APIs.

Untuk membuat kunci terkelola pelanggan simetris

Ikuti langkah-langkah untuk Membuat kunci terkelola pelanggan simetris di Panduan AWS Key Management Service Pengembang.

catatan

Opsional: Saat membuat kunci, Anda dapat memilih Administrator kunci. Pengguna atau peran yang dipilih akan diberikan akses mengelola kunci, seperti mengaktifkan atau menonaktifkan kunci melalui tombol. API Anda juga dapat memilih Pengguna kunci. Pengguna atau peran ini akan diberikan kemampuan untuk menggunakan AWS KMS kunci dalam operasi kriptografi.

Langkah 2: Tetapkan kebijakan AWS KMS utama

Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki persis satu kebijakan utama, yang berisi pernyataan yang menentukan siapa yang dapat menggunakan kunci dan bagaimana mereka dapat menggunakannya. Saat membuat kunci terkelola pelanggan, Anda dapat menentukan kebijakan kunci. Untuk selengkapnya, lihat Mengelola akses ke kunci yang dikelola pelanggan di Panduan AWS Key Management Service Pengembang.

Berikut ini adalah contoh kebijakan AWS KMS kunci dari konsol, tanpa administrator Key atau pengguna Key:

{ "Version": "2012-10-17", "Id": "key-consolepolicy-1", "Statement": [ { "Sid": "Enable IAM User Permissions for the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" } ] }

Lihat Panduan AWS Key Management Service Pengembang untuk informasi tentang menentukan izin dalam kebijakan dan akses kunci pemecahan masalah.

Langkah 3: (Opsional) Tambahkan kebijakan kunci untuk mengenkripsi log CloudWatch

Step Functions terintegrasi dengan CloudWatch untuk logging dan monitoring. Anda memiliki opsi untuk mengenkripsi data yang dikirim ke CloudWatch Log. Untuk menggunakan logging terenkripsi, Anda harus menyediakan akses ke layanan pengiriman log dalam kebijakan kunci mesin negara untuk AWS KMS tindakan. Anda dapat mengenkripsi grup log menggunakan kunci mesin negara, atau Anda dapat memilih kunci lain khusus untuk grup log (misalnya, “Kunci Grup Log”).

Untuk mengaktifkan integrasi CloudWatch log terenkripsi untuk mesin status, Anda harus menambahkan yang berikut ini ke kebijakan AWS KMS utama Anda:

{ "Id": "key-consolepolicy-logging", "Version": "2012-10-17", "Statement": [ { "Sid": "Enable log service for a single log group", "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnEquals": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:region:account-id:log-group:log-group-name" } } } ] }
catatan

ConditionBagian ini membatasi AWS KMS kunci ke grup ARN log tunggal.

Anda juga harus mengaktifkan pengiriman layanan log untuk integrasi dengan kebijakan kunci berikut:

{ "Sid": "Enable log service delivery for integrations", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "kms:Decrypt*", "Resource": "*" }
catatan

Lihat dokumentasi CloudWatch log untuk mempelajari selengkapnya tentang menyetel izin pada AWS KMS kunci untuk grup log Anda.

Langkah 4: Buat mesin negara

Setelah Anda membuat kunci dan menyiapkan kebijakan, Anda dapat menggunakan kunci mereka untuk membuat mesin status baru.

Saat membuat mesin status, pilih Konfigurasi tambahan, lalu pilih untuk mengenkripsi dengan kunci yang dikelola pelanggan. Anda kemudian dapat memilih kunci Anda dan mengatur periode penggunaan kembali kunci data dari 1 menit hingga 15 menit.

Secara opsional, Anda dapat mengaktifkan logging dengan mengatur tingkat log dan memilih untuk mengenkripsi grup log dengan kunci Anda AWS KMS .

catatan

Anda hanya dapat mengaktifkan enkripsi pada grup log baru di konsol Step Functions. Untuk mempelajari cara mengaitkan AWS KMS kunci dengan grup log yang ada, lihat Mengaitkan AWS KMS kunci dengan grup log.

Langkah 5: Panggil mesin status yang dienkripsi dengan kunci Anda AWS KMS

Anda dapat memanggil mesin status terenkripsi seperti biasanya, dan data Anda akan dienkripsi dengan kunci yang dikelola pelanggan Anda.

Untuk memulai eksekusi alur kerja Standar dan alur kerja Asynchronous Express dengan kunci terkelola pelanggan, peran eksekusi Anda memerlukan dan izin. kms:Decrypt kms:GenerateDataKey Peran eksekusi untuk eksekusi Synchronous Express membutuhkankms:Decrypt. Saat Anda membuat mesin status di konsol dan memilih buat peran baru, izin ini secara otomatis disertakan untuk Anda.

Membuat Aktivitas dengan kunci terkelola pelanggan

Membuat Step Functions Activity dengan kunci yang dikelola pelanggan mirip dengan membuat mesin status dengan kunci yang dikelola pelanggan. Sebelum Anda dapat membuat aktivitas dengan AWS KMS kunci terkelola pelanggan, pengguna atau peran Anda hanya memerlukan AWS KMS izin untukDescribeKey. Selama pembuatan Aktivitas, Anda memilih kunci dan mengatur parameter konfigurasi enkripsi.

Perhatikan bahwa sumber daya Step Functions Activity tetap tidak dapat diubah. Anda tidak dapat memperbarui encryptionConfiguration untuk aktivitas aktivitas ARN yang ada; Anda harus membuat sumber daya Aktivitas baru. Penelepon ke API titik akhir Aktivitas harus memiliki kms:DescribeKey izin untuk berhasil membuat aktivitas dengan kunci. AWS KMS

Saat enkripsi kunci terkelola pelanggan diaktifkan pada Tugas Aktivitas, peran eksekusi mesin status akan memerlukan kms:GenerateDataKey dan kms:Decrypt izin untuk kunci aktivitas. Jika Anda membuat mesin status ini dari konsol Step Functions, fitur pembuatan peran otomatis akan menambahkan izin ini.

Cakupan kebijakan AWS KMS izin dengan ketentuan

Anda dapat menggunakan konteks enkripsi dalam kebijakan dan IAM kebijakan utama conditions untuk mengontrol akses ke kunci terkelola pelanggan simetris Anda. Untuk membatasi penggunaan AWS KMS kunci ke permintaan dari Step Functions atas nama peran tertentu, Anda dapat menggunakan kms:ViaService kondisi tersebut.

Pelingkupan dengan konteks enkripsi

Konteks enkripsi adalah kumpulan opsional pasangan kunci-nilai yang berisi informasi kontekstual tambahan tentang data.

AWS KMS menggunakan konteks enkripsi sebagai data otentikasi tambahan untuk mendukung enkripsi yang diautentikasi. Bila Anda menyertakan konteks enkripsi dalam permintaan untuk mengenkripsi data, AWS KMS mengikat konteks enkripsi ke data terenkripsi. Untuk mendekripsi data, Anda menyertakan konteks enkripsi yang sama dalam permintaan.

Step Functions menyediakan konteks enkripsi dalam operasi AWS KMS kriptografi, di mana kuncinya adalah aws:states:stateMachineArn untuk State Machines atau aws:states:activityArn untuk Aktivitas, dan nilainya adalah sumber daya Amazon Resource Name (ARN).

"encryptionContext": {"aws:states:stateMachineArn": "arn:aws:states:region:123456789012:stateMachine:state_machine_name"}
"encryptionContext": {"aws:states:activityArn": "arn:aws:states:region:123456789012:activity:activity_name"}

Contoh berikut menunjukkan cara membatasi penggunaan AWS KMS kunci untuk peran eksekusi ke mesin status tertentu dengan kms:EncryptionContext dan kunci aws:states:stateMachineArn konteks:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow KMS Permissions for StepFunctionsWorkflowExecutions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:aa-example-1:1234567890:key/a1b2c3d4-5678-90ab-cdef-EXAMPLEaaaaa" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws:states:stateMachineArn": "arn:aws:states:aa-example-1:1234567890:stateMachine:MyStateMachine" } } } ] }

Pelingkupan dengan kms: ViaService

Kunci kms:ViaService kondisi membatasi penggunaan AWS Key Management Service kunci untuk permintaan dari AWS layanan tertentu.

Kebijakan contoh berikut menggunakan kms:ViaService kondisi untuk mengizinkan AWS KMS kunci digunakan untuk tindakan tertentu hanya jika permintaan berasal dari Step Functions di ca-central-1 wilayah tersebut, bertindak atas nama: ExampleRole

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow access for Key Administrators in a region", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::1234567890:role/ExampleRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "states.ca-central-1.amazonaws.com" } } } ] }
catatan

kms:ViaServiceKondisi ini hanya berlaku ketika AWS KMS izin diperlukan oleh API penelepon (misalnya,,,, CreateStateMachine CreateActivityGetActivityTask, dll.). Menambahkan kms:ViaService kondisi ke peran eksekusi dapat mencegah eksekusi baru dimulai atau menyebabkan eksekusi berjalan gagal.

Izin yang diperlukan untuk penelepon API

Untuk memanggil API tindakan Step Functions yang mengembalikan data terenkripsi, penelepon memerlukan izin. AWS KMS Atau, beberapa API tindakan memiliki opsi (METADATA_ONLY) untuk mengembalikan hanya metadata, menghapus persyaratan untuk AWS KMS izin. Lihat Step Functions API untuk informasi.

Agar eksekusi berhasil diselesaikan saat menggunakan enkripsi kunci terkelola pelanggan, peran eksekusi harus diberikan kms:GenerateDataKey dan kms:Decrypt izin untuk AWS KMS kunci yang digunakan oleh mesin status.

Tabel berikut menunjukkan AWS KMS izin yang Anda perlukan untuk menyediakan API pemanggil Step Functions State Machine. Anda dapat memberikan izin dalam kebijakan atau IAM kebijakan utama untuk peran tersebut.

APIsmenggunakan AWS KMS kunci State Machine Diperlukan oleh Penelepon
CreateStateMachine km:DescribeKey, kms: GenerateDataKey
UpdateStateMachine km:DescribeKey, kms: GenerateDataKey
DescribeStateMachine kms:Decrypt
DescribeStateMachineForExecution kms:Decrypt
StartExecution --
StartSyncExecution kms:Decrypt
SendTaskSuccess --
SendTaskFailure --
StopExecution --
RedriveExecution --
DescribeExecution kms:Decrypt
GetExecutionHistory kms:Decrypt

Tabel berikut menunjukkan AWS KMS izin yang Anda perlukan untuk menyediakan API pemanggil Step Functions Activity. Anda dapat memberikan izin dalam kebijakan atau IAM kebijakan utama untuk peran tersebut.

APIsmenggunakan AWS KMS kunci Aktivitas Diperlukan oleh Penelepon
CreateActivity km: DescribeKey
GetActivityTask kms:Decrypt
Kapan saya memberikan izin kepada Penelepon atau peran Eksekusi?

Saat IAM peran atau pengguna memanggil Step FunctionsAPI, layanan Step Functions akan memanggil AWS KMS atas nama API pemanggil. Dalam hal ini, Anda harus memberikan AWS KMS izin kepada API penelepon. Ketika peran eksekusi memanggil AWS KMS secara langsung, Anda harus memberikan AWS KMS izin pada peran eksekusi.

AWS CloudFormation sumber daya untuk konfigurasi enkripsi

AWS CloudFormation tipe sumber daya untuk Step Functions dapat menyediakan mesin status dan sumber daya aktivitas dengan konfigurasi enkripsi.

Secara default, Step Functions menyediakan enkripsi sisi server yang transparan. Keduanya AWS::StepFunctions::Activitydan AWS::StepFunctions::StateMachinemenerima EncryptionConfiguration properti opsional yang dapat mengonfigurasi AWS KMS kunci yang dikelola pelanggan untuk enkripsi sisi server.

Prasyarat: Sebelum Anda dapat membuat mesin status dengan AWS KMS kunci yang dikelola pelanggan, pengguna atau peran Anda harus memiliki AWS KMS izin untuk dan. DescribeKey GenerateDataKey

Pembaruan untuk StateMachine membutuhkan Tidak ada gangguan. Pembaruan sumber daya Aktivitas membutuhkan: Penggantian.

Untuk mendeklarasikan EncryptionConfigurationproperti di AWS CloudFormation template Anda, gunakan sintaks berikut:

JSON

{ "KmsKeyId" : String, "KmsDataKeyReusePeriodSeconds" : Integer, "Type" : String }

YAML

KmsKeyId: String KmsDataKeyReusePeriodSeconds: Integer Type: String

Sifat-sifat

  • Jenis - Opsi enkripsi untuk mesin atau aktivitas negara. Nilai yang diizinkan: CUSTOMER_MANAGED_KMS_KEY | AWS_OWNED_KEY

  • KmsKeyId- Alias, aliasARN, ID kunci, atau kunci kunci ARN enkripsi simetris yang mengenkripsi AWS KMS kunci data. Untuk menentukan AWS KMS kunci di AWS akun yang berbeda, pelanggan harus menggunakan kunci ARN atau aliasARN. Untuk informasi mengenai kmsKeyId, lihat KeyIddi AWS KMS dokumen.

  • KmsDataKeyReusePeriodSeconds- Durasi maksimum yang SFN akan menggunakan kembali kunci data. Ketika periode berakhir, Step Functions akan memanggilGenerateDataKey. Pengaturan ini hanya dapat diatur ketika Type adalahCUSTOMER_MANAGED_KMS_KEY. Nilainya bisa berkisar antara 60-900 detik. Defaultnya adalah 300 detik.

AWS CloudFormation contoh

Contoh: StateMachine dengan kunci yang dikelola pelanggan

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions State Machine. Resources: MyStateMachine: Type: AWS::StepFunctions::StateMachine Properties: StateMachineName: HelloWorld-StateMachine Definition: StartAt: PassState States: PassState: Type: Pass End: true RoleArn: !Sub "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/example" EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

Contoh: Aktivitas dengan kunci yang dikelola pelanggan

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityWithKmsEncryption EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

Memperbarui enkripsi untuk Aktivitas memerlukan pembuatan sumber daya baru

Konfigurasi aktivitas tidak dapat diubah, dan nama sumber daya harus unik. Untuk mengatur kunci terkelola pelanggan untuk enkripsi, Anda harus membuat Aktivitas baru. Jika Anda mencoba mengubah konfigurasi di CFN template untuk aktivitas yang ada, Anda akan menerima ActivityAlreadyExists pengecualian.

Untuk memperbarui aktivitas Anda agar menyertakan kunci terkelola pelanggan, tetapkan nama aktivitas baru dalam CFN templat Anda. Berikut ini menunjukkan contoh yang membuat aktivitas baru dengan konfigurasi kunci terkelola pelanggan:

Definisi aktivitas yang ada

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a new Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityName EncryptionConfiguration: Type: AWS_OWNED_KEY

Definisi aktivitas baru

AWSTemplateFormatVersion: '2010-09-09' Description: An example template for a Step Functions Activity. Resources: Activity: Type: AWS::StepFunctions::Activity Properties: Name: ActivityWithKmsEncryption EncryptionConfiguration: KmsKeyId: !Ref MyKmsKey KmsDataKeyReusePeriodSeconds: 100 Type: CUSTOMER_MANAGED_KMS_KEY MyKmsKey: Type: AWS::KMS::Key Properties: Description: Symmetric KMS key used for encryption/decryption

Memantau penggunaan kunci enkripsi

Saat Anda menggunakan kunci yang dikelola AWS KMS pelanggan untuk mengenkripsi sumber daya Step Functions, Anda dapat menggunakannya CloudTrail untuk melacak permintaan yang dikirim Step Functions. AWS KMS

Anda juga dapat menggunakan konteks enkripsi dalam catatan audit dan log untuk mengidentifikasi bagaimana kunci yang dikelola pelanggan digunakan. Konteks enkripsi juga muncul di log yang dihasilkan oleh AWS CloudTrail.

Contoh berikut adalah CloudTrail peristiwa untukDecrypt,DescribeKey, dan GenerateDataKey untuk memantau AWS KMS operasi yang disebut oleh Step Functions untuk mengakses data yang dienkripsi oleh kunci yang dikelola pelanggan Anda:

Decrypt

Saat Anda mengakses mesin atau aktivitas status terenkripsi, Step Functions memanggil Decrypt operasi untuk menggunakan kunci data terenkripsi yang disimpan untuk mengakses data terenkripsi.

Contoh peristiwa berikut mencatat Decrypt operasi:

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "encryptionContext": { "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1" } }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey

Step Functions menggunakan DescribeKey operasi untuk memverifikasi apakah kunci terkelola AWS KMS pelanggan yang terkait dengan Mesin Negara atau Aktivitas Anda ada di akun dan wilayah.

Contoh peristiwa berikut mencatat DescribeKey operasi:

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
GenerateDataKey

Saat Anda mengaktifkan kunci terkelola AWS KMS pelanggan untuk State Machine atau Activity Anda, Step Functions mengirimkan GenerateDataKey permintaan untuk mendapatkan kunci data ke definisi mesin status enkripsi atau data eksekusi.

Contoh peristiwa berikut mencatat GenerateDataKey operasi:

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "ASIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "111122223333:Sampleuser01", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "attributes": { "creationDate": "2024-07-05T21:06:27Z", "mfaAuthenticated": "false" } }, "invokedBy": "states.amazonaws.com" }, "eventTime": "2024-07-05T21:12:21Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "aa-example-1", "sourceIPAddress": "states.amazonaws.com", "userAgent": "states.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "encryptionContext": { "aws:states:stateMachineArn": "arn:aws:states:aa-example-1:111122223333:stateMachine:example1" }, "keyId": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:aa-example-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

FAQs

Apa yang terjadi jika kunci saya ditandai untuk dihapus atau dihapus? AWS KMS

Jika kunci dihapus atau ditandai untuk dihapus AWS KMS, eksekusi berjalan terkait akan gagal. Eksekusi baru tidak dapat dimulai sampai Anda menghapus atau mengubah kunci yang terkait dengan alur kerja. Setelah AWS KMS kunci dihapus, semua data terenkripsi yang terkait dengan eksekusi alur kerja akan tetap dienkripsi dan tidak dapat lagi didekripsi, membuat data tidak dapat dipulihkan.

Apa yang terjadi jika AWS KMS kunci dinonaktifkan AWS KMS?

Jika AWS KMS kunci dinonaktifkan AWS KMS, eksekusi berjalan terkait akan gagal. Eksekusi baru tidak dapat dimulai. Anda tidak dapat lagi mendekripsi data yang dienkripsi di bawah AWS KMS kunci yang dinonaktifkan itu hingga diaktifkan kembali.

Apa yang terjadi pada peristiwa perubahan Status Eksekusi yang dikirim ke EventBridge?

Input Eksekusi, Output, Kesalahan, dan Penyebab tidak akan disertakan untuk peristiwa perubahan status eksekusi untuk alur kerja yang dienkripsi menggunakan kunci terkelola pelanggan Anda. AWS KMS

Pelajari selengkapnya

Untuk informasi tentang enkripsi data saat istirahat, lihat AWS Key Management Service konsep dan praktik terbaik keamanan AWS Key Management Service di Panduan AWS Key Management Service Pengembang.