

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS ParallelCluster API の呼び出し
<a name="api-reference-invoke-v3"></a>

 AWS ParallelCluster Amazon API Gateway エンドポイントは[`AWS_IAM`認可タイプ](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html#api-gateway-control-access-iam-permissions-model-for-calling-api)に設定されているため、すべてのリクエストに有効な IAM 認証情報による SigV4 署名が必要となります ([API リファレンス: http リクエストの作成](https://docs.aws.amazon.com/apigateway/api-reference/making-http-requests/))。

デフォルトの設定でデプロイされた場合、API の呼び出し許可は、API で作成されたデフォルトの IAM ユーザーにのみ付与されます。

デフォルトの IAM ユーザーの ARN を取得するには、以下を実行します。

```
$ REGION=<region>
$ API_STACK_NAME=<stack-name>
$ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterApiUserRole'].OutputValue" --output text
```

デフォルトの IAM ユーザーの一時的な認証情報を取得するには、[STS AssumeRole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html) コマンドを実行します。

 AWS ParallelCluster API エンドポイントを取得するには、次のコマンドを実行します。

```
$ REGION=<region>
$ API_STACK_NAME=<stack-name>
$ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterApiInvokeUrl'].OutputValue" --output text
```

 AWS ParallelCluster API は、OpenAPI 仕様に準拠する任意の HTTP クライアントで呼び出すことができます。この仕様については、以下を参照してください。

```
https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/ParallelCluster.openapi.yaml
```

[ここ](https://docs.aws.amazon.com/apigateway/api-reference/signing-requests)のドキュメントにある通り、リクエストには SigV4 署名が必要です。

現時点では、公式な API クライアントの実装はありません。ただし、[OpenAPI Generator](https://openapi-generator.tech/) を使用して、OpenAPI モデルから API OpenAPI クライアントを簡単に生成できます。クライアントが生成されたら、すぐに提供されない場合は SigV4 署名を追加する必要があります。

Python API クライアントのリファレンス実装は、[AWS ParallelCluster のリポジトリ](https://github.com/aws/aws-parallelcluster/tree/develop/api/client/src)にあります。Python API クライアントの使い方については、「[AWS ParallelCluster API の使用](tutorials_06_API_use.md) チュートリアル」を参照してください。

Amazon Cognito や Lambda オーソライザーなどのより高度なアクセスコントロールメカニズムを実装したり、 AWS WAF または API キーを使用して API をさらに保護したりするには、[Amazon API Gateway のドキュメント](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-to-api.html)に従ってください。

**警告**  
 AWS ParallelCluster API を呼び出す権限を持つ IAM ユーザーは、 AWS ParallelCluster で によって管理されるすべての AWS リソースを間接的に制御できます AWS アカウント。これには、ユーザー IAM ポリシーの制限によりユーザーが直接制御できない AWS リソースの作成が含まれます。例えば、 AWS ParallelCluster クラスターの作成は、その設定に応じて、Amazon EC2 インスタンス、Amazon Route 53、Amazon Elastic File System ファイルシステム、Amazon FSx ファイルシステム、IAM ロール、および AWS ParallelCluster ユーザーが直接制御できない他の AWS のサービス のリソースのデプロイが含まれる場合があります。

**警告**  
設定で`AdditionalIamPolicies`指定された を使用してクラスターを作成する場合、追加のポリシーは次のいずれかのパターンと一致する必要があります。  

```
- !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/parallelcluster*
- !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/parallelcluster/*
- !Sub arn:${AWS::Partition}:iam::aws:policy/CloudWatchAgentServerPolicy
- !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonSSMManagedInstanceCore
- !Sub arn:${AWS::Partition}:iam::aws:policy/AWSBatchFullAccess
- !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonS3ReadOnlyAccess
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSBatchServiceRole
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
- !Sub arn:${AWS::Partition}:iam::aws:policy/EC2InstanceProfileForImageBuilder
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
```
その他の追加ポリシーが必要な場合は、以下のいずれかを行うことができます。  
`DefaultParallelClusterIamAdminPolicy` を以下で編集する。  

  ```
  https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml
  ```
ポリシーを `ArnLike/iam:PolicyARN` セクションに追加します。
設定ファイル`AdditionalIamPolicies`で のポリシーを指定せず、クラスター内で作成された AWS ParallelCluster インスタンスロールにポリシーを手動で追加します。