

# Lambda マネージドインスタンス用の Lambda オペレーターロール
<a name="lambda-managed-instances-operator-role"></a>

Lambda マネージドインスタンスを使用する場合、Lambda にはアカウントのコンピューティングキャパシティを管理するための権限が必要になります。オペレーターロールは、Lambda がキャパシティープロバイダー内の EC2 インスタンスを管理できるようにする IAM ポリシーを通じてこれらの権限を付与します。

関数の実行時に Lambda が実行ロールを引き受ける方法と同様に、Lambda はこれらの管理オペレーションを実行する際にオペレーターロールを引き受けます。

## オペレーターロールの作成
<a name="lambda-managed-instances-creating-operator-role"></a>

オペレーターロールは、IAM コンソールまたは AWS CLI で作成できます。ロールには以下を含める必要があります。
+ **アクセス許可ポリシー** – キャパシティプロバイダーと関連リソースを管理するアクセス許可を付与します
+ **信頼ポリシー** – Lambda サービス (`lambda.amazonaws.com`) がロールを引き受けられるようにします

### アクセス許可ポリシー
<a name="lambda-managed-instances-operator-role-permissions-policy"></a>

オペレーターロールがキャパシティープロバイダーと基盤となるコンピューティングリソースを管理するには、アクセス許可が必要です。少なくとも、現在ロールには以下のような [AWSLambdaManagedEC2ResourceOperator](https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/policies/details/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAWSLambdaManagedEC2ResourceOperator) 管理ポリシーのアクセス許可が必要です。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateTags",
        "ec2:AttachNetworkInterface"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:network-interface/*",
        "arn:aws:ec2:*:*:volume/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:ManagedResourceOperator": "scaler.lambda.amazonaws.com"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeCapacityReservations",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceStatus",
        "ec2:DescribeInstanceTypeOfferings",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcEncryptionControls"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateNetworkInterface"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:subnet/*",
        "arn:aws:ec2:*:*:security-group/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:image/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:Owner": "amazon"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:*:log-stream:*"
    }
  ]
}
```

### 信頼ポリシー
<a name="lambda-managed-instances-operator-role-trust-policy"></a>

以下の信頼ポリシーにより、Lambda はオペレーターロールを引き受けることができます。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "lambda.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

## Lambda マネージドインスタンスのサービスにリンクされたロール
<a name="lambda-managed-instances-service-linked-role-for-lmi"></a>

Lambda マネージドインスタンスのライフサイクルを責任を持って管理するため、Lambda にはユーザーのアカウント内のマネージドインスタンスを終了させる永続的なアクセス権が必要になります。Lambda は、AWS Identity and Access Management (IAM) のサービスにリンクされたロール (SLR) を使用してこれらのオペレーションを実行します。

**自動作成**: サービスにリンクされたロールは、キャパシティープロバイダーを初めて作成するときに自動的に作成されます。最初のキャパシティープロバイダーを作成するユーザーは、`lambda.amazonaws.com` プリンシパルに対する `iam:CreateServiceLinkedRole` 権限が必要です。

**アクセス許可**: サービスにリンクされたロールは、マネージドインスタンスに対する次のアクセス許可を Lambda に付与します。
+ `ec2:TerminateInstances` – ライフサイクルの終了時にインスタンスを終了します
+ `ec2:DescribeInstances` – マネージドインスタンスを列挙します

**削除**: このサービスにリンクされたロールは、アカウント内のすべての Lambda マネージドインスタンスキャパシティープロバイダーを削除した後にのみ削除できます。

サービスにリンクされたロールの詳細については、「[Lambda 用のサービスリンクロールの使用](using-service-linked-roles.md)」を参照してください。