

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

# Instal dan konfigurasikan mesin penyediaan Terraform
<a name="install-config-engine"></a>

Agar berhasil menggunakan produk Terraform AWS Service Catalog, Anda harus menginstal dan mengonfigurasi mesin penyediaan Terraform di akun yang sama tempat Anda akan mengelola produk Terraform. Untuk memulai, Anda dapat menggunakan mesin penyediaan Terraform yang disediakan oleh AWS, yang menginstal dan mengonfigurasi kode dan infrastruktur yang diperlukan agar mesin penyediaan Terraform dapat digunakan. AWS Service Catalog Pengaturan satu kali ini memakan waktu sekitar 30 menit. AWS Service Catalog menyediakan GitHub repositori dengan instruksi tentang [menginstal dan mengonfigurasi mesin penyediaan Terraform](https://github.com/aws-samples/service-catalog-engine-for-terraform-os). 

## Penentuan antrian
<a name="queue-determination"></a>

Saat Anda memanggil operasi penyediaan, AWS Service Catalog siapkan pesan payload untuk dikirim ke antrian yang relevan di mesin penyediaan. Dalam rangka membangun ARN untuk antrian, AWS Service Catalog membuat asumsi berikut:
+ Mesin penyediaan terletak di akun pemilik produk
+ Mesin penyediaan terletak di wilayah yang sama di mana panggilan dilakukan AWS Service Catalog 
+ Antrian mesin penyediaan mengikuti skema penamaan terdokumentasi yang dirinci di bawah ini

Misalnya, jika ProvisionProduct dipanggil `us-east-1` dari akun 1111111111 menggunakan produk yang dibuat oleh akun 0000000000000, asumsikan SQS ARN yang benar adalah. AWS Service Catalog `arn:aws:sqs:us-east-1:0000000000000:ServiceCatalogTerraformOSProvisionOperationQueue` 

Logika yang sama berlaku untuk fungsi Lambda yang dipanggil oleh. `DescribeProvisioningParameters` 

# Menambahkan Deputi yang Bingung ke mesin penyediaan Terraform Anda
<a name="confused-deputy-TRFM-engine"></a>

## Kunci konteks Deputi yang bingung pada titik akhir untuk membatasi akses operasi `lambda:Invoke`
<a name="confused-deputy-TRFM-lambda"></a>

Fungsi Lambda parser parameter yang dibuat AWS Service Catalog oleh mesin -provided memiliki kebijakan akses yang memberikan izin `lambda:Invoke` lintas akun hanya kepada prinsipal layanan: AWS Service Catalog 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ServiceCatalogTerraformOSParameterParser"
        }
    ]
}
```

------

Ini harus menjadi satu-satunya izin yang diperlukan agar integrasi dengan berfungsi AWS Service Catalog dengan baik. Namun, Anda dapat membatasi ini lebih lanjut menggunakan kunci konteks [Deputi `aws:SourceAccount` Bingung](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy). Saat AWS Service Catalog mengirim pesan ke antrian ini, AWS Service Catalog isi kunci dengan ID akun penyediaan. Ini sangat membantu ketika Anda berniat untuk mendistribusikan produk melalui berbagi portofolio dan ingin memastikan bahwa hanya akun tertentu yang menggunakan mesin Anda.

Misalnya, Anda dapat membatasi mesin Anda untuk hanya mengizinkan permintaan yang berasal dari 000000000000 dan 111111111111 menggunakan kondisi yang ditunjukkan di bawah ini:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ServiceCatalogTerraformOSParameterParser",
            "Condition": {
                "StringLike": {
                    "aws:SourceAccount": [
                        "000000000000",
                        "111111111111"
                    ]
                }
            }
        }
    ]
}
```

------

## Kunci konteks Deputi yang bingung pada titik akhir untuk membatasi akses operasi `sqs:SendMessage`
<a name="confused-deputy-TRFM-sqs"></a>

Antrian operasi penyediaan Amazon SQS yang dibuat AWS Service Catalog oleh engine yang disediakan memiliki kebijakan akses yang memberikan izin `sqs:SendMessage` lintas akun (dan KMS terkait) hanya kepada prinsipal layanan: AWS Service Catalog 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable AWS Service Catalog to send messages to the queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "sqs:SendMessage",
            "Resource": [
                "arn:aws:sqs:us-east-1:111122223333:ServiceCatalogTerraformOSProvisionOperationQueue"
            ]
        },
        {
            "Sid": "Enable AWS Service Catalog encryption/decryption permissions when sending message to queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": [
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        }
    ]
}
```

------

Ini harus menjadi satu-satunya izin yang diperlukan agar integrasi dengan berfungsi AWS Service Catalog dengan baik. Namun, Anda dapat membatasi ini lebih lanjut menggunakan kunci konteks [Deputi `aws:SourceAccount` Bingung](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy). Saat AWS Service Catalog mengirim pesan ke antrian ini, AWS Service Catalog isi kunci dengan ID akun penyediaan. Ini sangat membantu ketika Anda berniat untuk mendistribusikan produk melalui berbagi portofolio dan ingin memastikan bahwa hanya akun tertentu yang menggunakan mesin Anda.

Misalnya, Anda dapat membatasi mesin Anda untuk hanya mengizinkan permintaan yang berasal dari 000000000000 dan 111111111111 menggunakan kondisi yang ditunjukkan di bawah ini:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable AWS Service Catalog to send messages to the queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "sqs:SendMessage",
            "Resource": [
                "arn:aws:sqs:us-east-1:111122223333:ServiceCatalogTerraformOSProvisionOperationQueue"
            ],
            "Condition": {
                "StringLike": {
                    "aws:SourceAccount": [
                        "000000000000",
                        "111111111111"
                    ]
                }
            }
        },
        {
            "Sid": "Enable AWS Service Catalog encryption/decryption permissions when sending message to queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": [
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        }
    ]
}
```

------