Terraform - 簡単なロールとポリシーを作成する
Terraformを使用してIAMロールとポリシーを作成するには、aws_iam_role
とaws_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
で変更を適用します。