[AWS] IAM Role, AssumeRole


意識の流れに従ってiam役と担当役に対する理解を整理しました...🧐🥺 注意が間違っているかもしれません!
IAM Roleは
  • の複数のポリシーを接続することで、権限を持つことができます.
  • 以上のオブジェクトを付与できます.
  • 人しか利用できないユーザーとは異なり、
  • ロールが必要な人は
  • を使用できます.
  • 段、信頼できる人だけ!
  • Assume Role
    例1
    例えば、EC 2には、S 3を検索するロールが指定される.
    role定義部分をterraformコードと見なします.以下に示します.
    resource "aws_iam_instance_profile" "bastion" {
      name = "iam-${local.name}-instance-profile"
      role = aws_iam_role.bastion.name
    }
    
    resource "aws_iam_role" "bastion" {
      name               = "iam-${local.name}-role"
      path               = "/ec2/"
      assume_role_policy = <<EOF
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Principal": {
            "Service": ["ec2.amazonaws.com"]
          },
          "Effect": "Allow"
        }
      ]
    }
    EOF
    }
    
    data "aws_iam_policy_document" "bastion" {
      statement {
        sid = "ReadBucket"
    
        actions = [
          "s3:Get*",
          "s3:List*",
        ]
    
        resources = [
          "arn:aws:s3:::jisun-*",
        ]
      }
    }
    
    resource "aws_iam_policy" "bastion" {
      name   = "iam-${local.name}-s3"
      path   = "/ec2/"
      policy = data.aws_iam_policy_document.bastion.json
    }
    
    resource "aws_iam_role_policy_attachment" "bastion" {
      role       = aws_iam_role.bastion.id
      policy_arn = aws_iam_policy.bastion.arn
    }
    
    ポリシーを定義し、ロールに追加する部分は明らかです.
    では、assume_role_policy部の定義は何でしょうか.
    この部分が対応するrole을 사용할 수 있는 대상을 지정の部分です.awsコンソールでは、信頼されているエンティティで確認できます.
    Principalでは、役割を引き受けることができます.つまり、EC 2リソースはこのロールを有効にします.
    その後、EC 2は、ロールに権限を付与され、ロールに関連するポリシーの権限、すなわちs 3の権限をリストして取得する.
    例2
    ユーザーの仮定ロールの定義
    Bロールにs 3 list権限を付与
    AはBの許可によりs 3リストを行うことができる
    とても良いサイトです…!
    https://jonnung.dev/posts/2021-01-28-aws-iam-role/