Terraform - 簡単なロールとポリシーを作成する

Terraformを使用してIAMロールとポリシーを作成するには、aws_iam_roleaws_iam_policyリソースを使用します。以下は、IAMロールとインラインポリシーを作成する基本的な例です。

provider "aws" {
region = "us-west-2" # お使いのリージョンに変更してください。
}

resource "aws_iam_role" "this" {
name = "my_example_role"

assume_role_policy = jsonencode({
Version = "2012-10-17",
Statement = [
{
Action = "sts:AssumeRole",
Principal = {
Service = "ec2.amazonaws.com"
},
Effect = "Allow",
Sid = ""
}
]
})
}

resource "aws_iam_role_policy" "this" {
name = "my_example_policy"
role = aws_iam_role.this.id

policy = jsonencode({
Version = "2012-10-17",
Statement = [
{
Action = [
"s3:ListBucket",
"s3:GetObject"
],
Resource = [
"arn:aws:s3:::my_bucket_name",
"arn:aws:s3:::my_bucket_name/*"
],
Effect = "Allow"
}
]
})
}

このコードは以下のことを行います:

1. EC2インスタンスがそのロールを引き受けることができるIAMロールを作成します。
2. そのIAMロールに関連付けられたインラインポリシーを作成し、特定のS3バケットへのアクセスを許可します。

注意: 上記の例では、具体的なS3バケット名 (my_bucket_name) とAWSリージョン (us-west-2) をハードコーディングしています。実際の使用時には、これらの値を適切なものに変更するか、変数として外部から供給するように設定してください。

 

このTerraformコードを実際に適用するには、次のステップを実行します:

1. terraform fmt でソースコードを整形します。

2. terraform init でプロジェクトを初期化します。

3. terraform plan で変更を確認します。

4. terraform apply で変更を適用します。

 

記事タイトル検索