Tag: Ami

AMIについての雑多なメモ

  • 基本的に「AWSによる管理」のポリシーだけで構築可能ならそうする
  • ただ 「AWSによる管理」のポリシー だけだと、残念だが噛み合わない(権限が大きすぎる)のも多数あるので、自前で用意する。 ポリシー
  • 会社によっては、より厳密には「特定のリソースへアクセスできる、できない」もポリシーを作るか?という観点があるが、これはAWSアカウントレベルで分離する形の方が運用コストが下げられるので、避けていきたい。
  • ロールの作成方針は書く(方針なりIAMロール作成手順はあった方が効率良い、再利用性が高まる)。だが、台帳は作らないレベル
  • 「EC2につけられるIAMロールはひとつだけ」という制限がある。複数のポリシーを一つのロールにまとめるように作る

何かポリシーを作ったら下記に追加する( 作成した時の意図とユースケースくらい ) 作成したロールについては、現状、不要( ロールは、それぞれの管理画面、例えばEC2やlambda、RDSなどの管理画面側で確認できるので)

開発と本番は共通のポリシー。AWSアカウントは異なるので、アカウントの部分は「*」で記述して共通に使えるようにする。

EcsExec

ECS Fargate に AWS SSM の機能を用いて直接シェルを起動するのに作成した

ECS Fargate 用に既に作ってあったロール、 ecsTaskExecutionRole にポリシーを追加する想定

{
   "Version": "2012-10-17",
   "Statement": [
       {
       "Effect": "Allow",
       "Action": [
            "ssmmessages:CreateControlChannel",
            "ssmmessages:CreateDataChannel",
            "ssmmessages:OpenControlChannel",
            "ssmmessages:OpenDataChannel"
       ],
      "Resource": "*"
      }
   ]
}

Billing

経理情報を確認できるように作成 https://recipe.kc-cloud.jp/archives/6020 この情報を参考にした

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "aws-portal:ViewBilling",
        "aws-portal:ViewUsage"
      ],
      "Resource": "*"
    }
  ]

CloudWatchLogsWrite

  • 意図: ECSでサービスを作ったらCloudWatch logsに自動的にストリームを作成させたかった。
  • ユースケース: ECSのサービスを作った際に、自動的にログストリームを作らせたかった。ほか「自動的にログストリームを作成させたい」場合に使う
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Resource": [
                "arn:aws:logs:ap-northeast-1:111111111111:log-group:/aws/codebuild",
                "arn:aws:logs:ap-northeast-1:111111111111:log-group:/aws/codebuild:*"
            ],
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ]
        }
    ]
}

ECSServiceRolePolicy

  • 意図: ECSでサービスを動作させるのに必要
  • ユースケース: ECSのサービスを作る際に、CloudWatchLogsWriteとセットで使う
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ECSTaskManagement",
            "Effect": "Allow",
            "Action": [
                "ec2:AttachNetworkInterface",
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:Describe*",
                "ec2:DetachNetworkInterface",
                "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
                "elasticloadbalancing:DeregisterTargets",
                "elasticloadbalancing:Describe*",
                "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
                "elasticloadbalancing:RegisterTargets",
                "route53:ChangeResourceRecordSets",
                "route53:CreateHealthCheck",
                "route53:DeleteHealthCheck",
                "route53:Get*",
                "route53:List*",
                "route53:UpdateHealthCheck",
                "servicediscovery:DeregisterInstance",
                "servicediscovery:Get*",
                "servicediscovery:List*",
                "servicediscovery:RegisterInstance",
                "servicediscovery:UpdateInstanceCustomHealthStatus"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ECSTagging",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:*:*:network-interface/*"
        }
    ]
}

EC2RoleforSSM

EC2にAWS SSMを用いてsshできるようにロールを作成した。 AWSの管理ロールである、AmazonEC2RoleforSSM をそのまま割り当てた( AmazonEC2RoleforSSM をダイレクトにEC2のIAMロールに割り当てる事はできなかった )

Read more...