AWS (Terraformによる作成方法)
AWS に Terraform のコードから連携に必要な情報を作成いただけます。
こちらの手順を進めていただくことで、安全な方法で Securify ASM によるリソースへのアクセスが可能になり、外部へ公開されているリソースを Securify 上で一覧として確認できるようになります。
作成いただく必要のあるリソース
- ID Provider
- IAM Role
前提
- 対象AWSアカウントIDがあること
- 実施するユーザーが、対象AWSアカウント内でID Providerを作成する権限があること
- 付与例: iam:CreateOpenIDConnectProvider
リソース作成手順
こちらの手順を行うことで以下の情報を取得できれば完了となります。
localsの情報に適切なものを入力してください。
- 上記Providerで利用される、IAMロールのARN
コード
locals { // あなたのSecurifyの組織ID 例: 01234567-89ab-cdef-0123-456789abcdef securify_organization_id = "" // 連携先のアカウントID 例: 123456789012 account_id = "" // 連携先のリージョン 東京の例: ap-northeast-1 region = "ap-northeast-1" // 連携先のIAM Role名 role_name = "asm_iam_role" } terraform { required_version = ">=1.9.2" required_providers { aws = { source = "hashicorp/aws" version = "5.38.0" } } } provider "aws" { region = local.region } # OIDCプロバイダの作成 resource "aws_iam_openid_connect_provider" "asm_oidc_provider" { url = "https://oidc.securify.jp" client_id_list = ["sts.amazonaws.com"] thumbprint_list = ["9e99a48a9960b14926bb7f3b02e22da2b0ab7280"] } # IAM Roleの作成 resource "aws_iam_role" "asm_role" { name = local.role_name assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Effect = "Allow" Principal: { "Federated": aws_iam_openid_connect_provider.asm_oidc_provider.arn }, Action = "sts:AssumeRoleWithWebIdentity" Condition = { StringEquals: { "oidc.securify.jp:aud": "sts.amazonaws.com" }, StringLike = { "oidc.securify.jp:sub": "job:${local.securify_organization_id}:*" } } } ] }) } # roleにAWSAccountManagementReadOnlyAccessポリシーをアタッチ resource "aws_iam_role_policy_attachment" "account_management_readonly" { role = aws_iam_role.asm_role.name policy_arn = "arn:aws:iam::aws:policy/AWSAccountManagementReadOnlyAccess" } # roleにSecurityAuditポリシーをアタッチ resource "aws_iam_role_policy_attachment" "security_audit" { role = aws_iam_role.asm_role.name policy_arn = "arn:aws:iam::aws:policy/SecurityAudit" } # 出力 output "role_arn" { value = aws_iam_role.asm_role.arn description = "Securify ASM IAM Role ARN" }
ローカル変数について
組織ID
Securify に登録している組織IDを入力してください。
不明な方はこちらを参照してください。
コードの適用
上記コードの必要な情報を入力したら以下のコマンドを実行し内容を確認してください。
terraform plan
問題なければ、以下のコマンドを実行し適用してください。
terraform apply
Terraformによる管理がされていない場合
- 事前に、 aws-cliによるconfigの設定を確認してください。
aws sts get-caller-identity
- 確認できたら、以下を実行しterraformを行う環境を作ってください。
terraform init
-
.terraform.lock.hcl
が作成されたら完了です。
ARNをコピー
applyが成功したら、出力されるrole_arnをコピーしておいてください。
これでリソース作成は完了になります。
Securify ASM への登録
Terraformで作成したリソースをSecurify ASMに登録します。
AWS の連携情報登録
サイドバーにある連携設定へアクセスしてください。
連携タイプからAWSをクリックしてください。
右上の連携設定を追加ボタンをクリックしてください。
以下項目を入力し、新規作成ボタンをクリックしてください。
Role ARN: ロール
登録した内容でテーブルに追加されたら成功です。
チームを割り当てることで検出されたエンドポイントをチームのメンバーが閲覧することが可能となります。
注意点
設定完了後のキャッシュについて
設定完了後、反映されるまでに数分かかる場合があります。
登録に失敗する場合は、時間をあけて再度お試しください。