例えばAmazon S3であればバケットポリシー、AWS WAFであればConditionsやRulesを設定してIPアドレスを制限できますが、今回はWebシステムにアクセスできるIPアドレスを制限することをテーマにご紹介させていただきたいと思います。
セキュリティグループによるIPアドレス制限
ネットワーク ACLによるIPアドレス制限
ロードバランサ(ALB)によるIPアドレス制限AWSでIPアドレスを制限する3つの方法 2019
IAMユーザー Route53 特定のHostedZoneを変更する権限
terraform
resource "aws_iam_group" "route53_operator" { name = "route53-operator" } resource "aws_iam_policy" "route53_operator" { name = "route53-operator" description = "route53-operator" policy = data.aws_iam_policy_document.route53_operator.json } data "aws_iam_policy_document" "route53_operator" { statement { sid = "" effect = "Allow" actions = [ "route53:GetHostedZoneCount", "route53:ListHostedZones", "route53:ListHostedZonesByName", "route53:ListResourceRecordSets", "route53:ListTrafficPolicies", ] resources = ["*"] } statement { sid = "" effect = "Allow" actions = [ "route53:ChangeResourceRecordSets", "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:UpdateHostedZoneComment", ] resources = [ "${aws_route53_zone.this.arn}" ] } } resource "aws_iam_group_policy_attachment" "route53_operator" { group = aws_iam_group.route53_operator.name policy_arn = aws_iam_policy.route53_operator.arn } resource "aws_iam_user" "route53_operator" { name = "route53-operator" } resource "aws_iam_group_membership" "route53_operator" { name = "route53_operator" users = [ aws_iam_user.route53_operator.name, ] group = aws_iam_group.route53_operator.name }
terraform import 2
terraform import module
先に結論
terraform import module.[module name].aws_hogehoge [target]のようにすればいい。
module 化した Terraform に AWS リソースを import する #AWS - Qiita 2022
import block
1.5.0 からimport blockが使える
In Terraform v1.5.0 and later, use an import block to import ECR Repositories using the name. For example:
import { to = aws_ecr_repository.service id = "test-service" }Using terraform import, import ECR Repositories using the name. For example:
% terraform import aws_ecr_repository.service test-servicehttps://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecr_repository#import
AWS Organizations 連絡先情報
【アップデート】AWS OrganizationsからAWSアカウントの連絡先情報が一元管理できるようになりました。 | SunnyCloud 2022
この機能を使うためには前提として Organizations のサービスメニューから AWS Acccount Management の信頼されたアクセスを有効化する必要があります。
こちらが有効化されていない場合は以下のように連絡先情報タブにアクセスが出来ません。
AWS Organizations コンソールから各アカウントの連絡先情報を参照・更新することが出来るようになりました | DevelopersIO 2022
CloudFormation IAMユーザ削除
CloudFormationのスタック削除→IAMユーザ削除で以下エラー
Cannot delete entity, must remove tokens from principal first.
MFAトークンを削除後に再度スタック削除でエラー解消した。
IAM Userの削除
適当にIAM Userを削除しようとすると
Cannot delete entity, must remove tokens from principal first.
と出ることがある。IAM Userの削除前にUserに紐づく以下を事前に削除しておかないといけないという話。AWS IAM 関係メモ 2023