
CIS Amazon Web Services FoundationsおよびAWS Foundational Security Best Practicesに基づいて、AWSアカウントをセキュアなベースライン構成で設定するTerraformモジュール。
AWS アカウントに適切に安全な設定ベースラインを適用するための Terraform モジュールです。 ほとんどの設定は [CIS Amazon Web Services Foundations v1.4.0] および [AWS Foundational Security Best Practices v1.0.0] に基づいています。
ベンチマーク準拠状況 を参照して、どのベンチマークの項目がカバーされているかを確認してください。
data "aws_caller_identity" "current" {} data "aws_region" "current" {}
module "secure_baseline" { source = "nozaq/secure-baseline/aws"
audit_log_bucket_name = "YOUR_BUCKET_NAME" aws_account_id = data.aws_caller_identity.current.account_id region = data.aws_region.current.name support_iam_role_principal_arns = ["YOUR_IAM_USER"]
providers = { aws = aws aws.ap-northeast-1 = aws.ap-northeast-1 aws.ap-northeast-2 = aws.ap-northeast-2 aws.ap-northeast-3 = aws.ap-northeast-3 aws.ap-south-1 = aws.ap-south-1 aws.ap-southeast-1 = aws.ap-southeast-1 aws.ap-southeast-2 = aws.ap-southeast-2 aws.ca-central-1 = aws.ca-central-1 aws.eu-central-1 = aws.eu-central-1 aws.eu-north-1 = aws.eu-north-1 aws.eu-west-1 = aws.eu-west-1 aws.eu-west-2 = aws.eu-west-2 aws.eu-west-3 = aws.eu-west-3 aws.sa-east-1 = aws.sa-east-1 aws.us-east-1 = aws.us-east-1 aws.us-east-2 = aws.us-east-2 aws.us-west-1 = aws.us-west-1 aws.us-west-2 = aws.us-west-2 } }
[これらのプロバイダーの定義方法については、例](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/examples/simple/regions.tf)を参照してください。
各AWSリージョンに対してプロバイダーを定義し、それらをモジュールに渡す必要があることに注意してください。現在、1つのモジュールで複数のリージョンを扱う推奨方法はこれです。
詳細は[Providers within Modules - Terraform Docs]をご覧ください。
監査ログを保存する新しいS3バケットはデフォルトで自動的に作成されますが、外部のS3バケットを指定することもできます。これは、すべてのログを保存する集中型S3バケットが既にある場合に便利です。詳細については、[external-bucket](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/examples/external-bucket)の例を参照してください。
### AWS Organizationでの複数アカウントの管理
AWS Organizationに複数のAWSアカウントがある場合、`secure-baseline`モジュールは各AWSアカウントに対して個別の環境を設定します。この動作を変更して、すべてのアカウントのセキュリティ情報と監査ログを1つのマスターアカウントで集中的に管理できます。
詳細については、[organization](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/examples/organization)の例を参照してください。
## サブモジュール
このモジュールは複数のサブモジュールで構成されており、それぞれを独立して使用できます。
[Modules in Package Sub-directories - Terraform]では、サブモジュールをソースする方法が説明されています。
- [alarm-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/alarm-baseline)
- [analyzer-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/analyzer-baseline)
- [cloudtrail-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/cloudtrail-baseline)
- [config-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/config-baseline)
- [ebs-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/ebs-baseline)
- [guardduty-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/guardduty-baseline)
- [iam-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/iam-baseline)
- [s3-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/s3-baseline)
- [secure-bucket](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/secure-bucket)
- [securityhub-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/securityhub-baseline)
- [vpc-baseline](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/modules/vpc-baseline)
## 互換性
- v1.0以降、このモジュールは[Terraform Provider for AWS](https://github.com/terraform-providers/terraform-provider-aws) v4.0以降が必要です。[Version 1.0 Upgrade Guide](https://github.com/nozaq/terraform-aws-secure-baseline/blob/main/docs/upgrade-1.0.md)にアップグレード後の推奨手順が記載されています。
- v0.20以降、このモジュールは[Terraform Provider for AWS](https://github.com/terraform-providers/terraform-provider-aws) v3.0以降が必要です。v2.x以下を使用する必要がある場合は、v0.19を使用してください。
- v0.10以降、このモジュールはTerraform v0.12以降が必要です。Terraform v0.11以前を使用する必要がある場合は、v0.9を使用してください。
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
## 要件
| 名前 | バージョン |
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.1.4 |
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.3 |
## プロバイダー
| 名前 | バージョン |
|------|---------|
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 4.3 |