Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan AWS Secrets Manager rahasia dalam GitHub pekerjaan
Untuk menggunakan rahasia dalam GitHub pekerjaan, Anda dapat menggunakan GitHub tindakan untuk mengambil rahasia dari AWS Secrets Manager dan menambahkannya sebagai variabel Lingkungan
Ketika Anda menambahkan rahasia ke GitHub lingkungan Anda, itu tersedia untuk semua langkah lain dalam GitHub pekerjaan Anda. Ikuti panduan dalam Pengerasan Keamanan untuk GitHub Tindakan
Anda dapat mengatur seluruh string dalam nilai rahasia sebagai nilai variabel lingkungan, atau jika string adalah JSON, Anda dapat mengurai JSON untuk mengatur variabel lingkungan individu untuk setiap pasangan nilai kunci JSON. Jika nilai rahasia adalah biner, tindakan mengubahnya menjadi string.
Untuk melihat variabel lingkungan yang dibuat dari rahasia Anda, aktifkan logging debug. Untuk informasi selengkapnya, lihat Mengaktifkan logging debug
Untuk menggunakan variabel lingkungan yang dibuat dari rahasia Anda, lihat Variabel lingkungan
Prasyarat
Untuk menggunakan tindakan ini, Anda harus terlebih dahulu mengonfigurasi AWS kredensil dan mengatur Wilayah AWS di GitHub lingkungan Anda dengan menggunakan langkah tersebutconfigure-aws-credentials
. Ikuti petunjuk di Mengonfigurasi Tindakan AWS
Kredensial Untuk GitHub Tindakan untuk
Peran IAM yang diasumsikan tindakan harus memiliki izin berikut:
GetSecretValue
pada rahasia yang ingin Anda ambil.ListSecrets
pada semua rahasia.(Opsional)
Decrypt
pada KMS key jika rahasia dienkripsi dengan file. kunci yang dikelola pelanggan
Untuk informasi selengkapnya, lihat Otentikasi dan kontrol akses untuk AWS Secrets Manager.
Penggunaan
Untuk menggunakan tindakan, tambahkan langkah ke alur kerja Anda yang menggunakan sintaks berikut.
- name: Step name
uses: aws-actions/aws-secretsmanager-get-secrets@v2
with:
secret-ids: |
secretId1
ENV_VAR_NAME
, secretId2
name-transformation: (Optional) uppercase|lowercase|none
parse-json-secrets: (Optional) true|false
Parameter
secret-ids
-
Rahasia ARNS, nama, dan awalan nama.
Untuk mengatur nama variabel lingkungan, masukkan sebelum ID rahasia, diikuti dengan koma. Misalnya
ENV_VAR_1, secretId
membuat variabel lingkungan bernama ENV_VAR_1 dari rahasia.secretId
Nama variabel lingkungan dapat terdiri dari huruf besar, angka, dan garis bawah.Untuk menggunakan awalan, masukkan setidaknya tiga karakter diikuti dengan tanda bintang. Misalnya
dev*
mencocokkan semua rahasia dengan nama yang dimulai di dev. Jumlah maksimum rahasia pencocokan yang dapat diambil adalah 100. Jika Anda menetapkan nama variabel, dan awalan cocok dengan beberapa rahasia, maka tindakan gagal. name-transformation
-
Secara default, langkah membuat setiap nama variabel lingkungan dari nama rahasia, diubah untuk menyertakan hanya huruf besar, angka, dan garis bawah, dan agar tidak dimulai dengan angka. Untuk huruf dalam nama, Anda dapat mengonfigurasi langkah untuk menggunakan huruf kecil dengan
lowercase
atau tidak mengubah huruf dengan.none
Nilai default-nya adalahuppercase
. parse-json-secrets
-
(Opsional) Secara default, tindakan menetapkan nilai variabel lingkungan ke seluruh string JSON dalam nilai rahasia. Atur
parse-json-secrets
true
untuk membuat variabel lingkungan untuk setiap pasangan kunci-nilai di JSON.Perhatikan bahwa jika JSON menggunakan kunci peka huruf besar/kecil seperti “nama” dan “Nama”, tindakan akan memiliki konflik nama duplikat. Dalam hal ini, atur
parse-json-secrets
kefalse
dan parse nilai rahasia JSON secara terpisah.
Penamaan variabel lingkungan
Variabel lingkungan yang dibuat oleh tindakan diberi nama sama dengan rahasia tempat mereka berasal. Variabel lingkungan memiliki persyaratan penamaan yang lebih ketat daripada rahasia, sehingga tindakan mengubah nama rahasia untuk memenuhi persyaratan tersebut. Misalnya, tindakan mengubah huruf kecil menjadi huruf besar. Jika Anda mengurai JSON rahasia, maka nama variabel lingkungan mencakup nama rahasia dan nama kunci JSON, misalnya. MYSECRET_KEYNAME
Anda dapat mengonfigurasi tindakan untuk tidak mengubah huruf kecil.
Jika dua variabel lingkungan akan berakhir dengan nama yang sama, tindakan gagal. Dalam hal ini, Anda harus menentukan nama yang ingin Anda gunakan untuk variabel lingkungan sebagai alias.
Contoh kapan nama mungkin bertentangan:
Sebuah rahasia bernama "MySecret" dan rahasia bernama “mysecret” keduanya akan menjadi variabel lingkungan bernama “MYSECRET”.
Sebuah rahasia bernama “SECRET_KEYNAME” dan rahasia JSON-parsed bernama “Secret” dengan kunci bernama “keyname” keduanya akan menjadi variabel lingkungan bernama “SECRET_KEYNAME”.
Anda dapat mengatur nama variabel lingkungan dengan menentukan alias, seperti yang ditunjukkan pada contoh berikut, yang menciptakan variabel bernama. ENV_VAR_NAME
secret-ids: | ENV_VAR_NAME, secretId2
Alias kosong
-
Jika Anda mengatur
parse-json-secrets: true
dan memasukkan alias kosong, diikuti dengan koma dan kemudian ID rahasia, tindakan tersebut memberi nama variabel lingkungan sama dengan kunci JSON yang diurai. Nama variabel tidak termasuk nama rahasia.Jika rahasia tidak berisi JSON yang valid, maka tindakan akan membuat satu variabel lingkungan dan menamainya sama dengan nama rahasia.
-
Jika Anda mengatur
parse-json-secrets: false
dan memasukkan alias kosong, diikuti dengan koma dan ID rahasia, tindakan tersebut memberi nama variabel lingkungan seolah-olah Anda tidak menentukan alias.
Contoh berikut menunjukkan alias kosong.
,secret2
Contoh
contoh 1 Dapatkan rahasia dengan nama dan oleh ARN
Contoh berikut menciptakan variabel lingkungan untuk rahasia diidentifikasi dengan nama dan oleh ARN.
- name: Get secrets by name and by ARN uses: aws-actions/aws-secretsmanager-get-secrets@v2 with: secret-ids: | exampleSecretName arn:aws:secretsmanager:us-east-2:123456789012:secret:test1-a1b2c3 0/test/secret /prod/example/secret SECRET_ALIAS_1,test/secret SECRET_ALIAS_2,arn:aws:secretsmanager:us-east-2:123456789012:secret:test2-a1b2c3 ,secret2
Variabel lingkungan dibuat:
EXAMPLESECRETNAME: secretValue1
TEST1: secretValue2
_0_TEST_SECRET: secretValue3
_PROD_EXAMPLE_SECRET: secretValue4
SECRET_ALIAS_1: secretValue5
SECRET_ALIAS_2: secretValue6
SECRET2: secretValue7
contoh 2 Dapatkan semua rahasia yang dimulai dengan awalan
Contoh berikut menciptakan variabel lingkungan untuk semua rahasia dengan nama yang dimulai dengan beta
.
- name: Get Secret Names by Prefix uses: 2 with: secret-ids: | beta* # Retrieves all secrets that start with 'beta'
Variabel lingkungan dibuat:
BETASECRETNAME: secretValue1
BETATEST: secretValue2
BETA_NEWSECRET: secretValue3
contoh 3 Parse JSON secara rahasia
Contoh berikut menciptakan variabel lingkungan dengan mengurai JSON dalam rahasia.
- name: Get Secrets by Name and by ARN uses: aws-actions/aws-secretsmanager-get-secrets@v2 with: secret-ids: | test/secret ,secret2 parse-json-secrets: true
Rahasianya test/secret
memiliki nilai rahasia berikut.
{
"api_user": "user",
"api_key": "key",
"config": {
"active": "true"
}
}
Rahasianya secret2
memiliki nilai rahasia berikut.
{
"myusername": "alejandro_rosalez",
"mypassword": "EXAMPLE_PASSWORD"
}
Variabel lingkungan dibuat:
TEST_SECRET_API_USER: "user"
TEST_SECRET_API_KEY: "key"
TEST_SECRET_CONFIG_ACTIVE: "true"
MYUSERNAME: "alejandro_rosalez"
MYPASSWORD: "EXAMPLE_PASSWORD"
contoh 4 Gunakan huruf kecil untuk nama variabel lingkungan
Contoh berikut menciptakan variabel lingkungan dengan nama huruf kecil.
- name: Get secrets uses: aws-actions/aws-secretsmanager-get-secrets@v2 with: secret-ids: exampleSecretName name-transformation: lowercase
Variabel lingkungan dibuat:
examplesecretname: secretValue