ステップ 5: 起動ロールを作成する - AWS Service Catalog

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

ステップ 5: 起動ロールを作成する

このステップでは、エンドユーザーが Terraform HashiCorp 製品を起動するときに Terraform プロビジョニングエンジンと が引き受けAWS Service Catalogることができるアクセス許可を指定する IAM ロール (起動ロール) を作成します。

起動制約としてシンプルな Amazon S3 バケット Terraform 製品に後で割り当てる IAM ロール (起動ロール) には、以下のアクセス許可が必要です。

  • Terraform 製品の基盤となる AWS リソースへのアクセス。このチュートリアルでは、s3:CreateBucket*s3:DeleteBucket*s3:Get*s3:List*、および s3:PutBucketTagging Amazon S3 オペレーションへのアクセスが含まれます。

  • AWS Service Catalog が所有する Amazon S3 バケット内の Amazon S3 テンプレートへの読み取りアクセス

  • CreateGroupListGroupResourcesDeleteGroup、および Tag リソースグループオペレーションへのアクセス。これらの操作により、AWS Service Catalog はリソースグループとタグを管理できます。

AWS Service Catalog 管理者アカウントで起動ロールを作成するには
  1. AWS Service Catalog 管理者アカウントにログインした状態で、IAM ユーザーガイドの「JSON タブにある新しいポリシーの作成」の指示に従います。

  2. シンプルな Amazon S3 バケット Terraform 製品用のポリシーを作成します。このポリシーは、起動ロールを作成する前に作成する必要があり、以下の権限で構成されます。

    • s3— Amazon S3 製品の一覧表示、読み取り、書き込み、プロビジョニング、タグ付けを行うための完全な権限を AWS Service Catalog に付与します。

    • s3— AWS Service Catalog が所有する Amazon S3 バケットへのアクセスを許可します。製品をデプロイするには、AWS Service Catalog はプロビジョニングアーティファクトへのアクセスが必要です。

    • resourcegroups— AWS Service Catalog は、タグ AWS Resource Groups の作成、一覧表示、削除を行えるようになります。

    • tag— タグ付けの権限を AWS Service Catalog に付与します。

    注記

    デプロイする基盤となるリソースによっては、サンプル JSON ポリシーを変更する必要がある場合があります。

    以下の JSON ポリシードキュメントを貼り付けます。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/servicecatalog:provisioning": "true" } } }, { "Action": [ "s3:CreateBucket*", "s3:DeleteBucket*", "s3:Get*", "s3:List*", "s3:PutBucketTagging" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Action": [ "resource-groups:CreateGroup", "resource-groups:ListGroupResources", "resource-groups:DeleteGroup", "resource-groups:Tag" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "tag:GetResources", "tag:GetTagKeys", "tag:GetTagValues", "tag:TagResources", "tag:UntagResources" ], "Resource": "*", "Effect": "Allow" } ] }
    1. 次へタグを選択します。

    2. 次へレビューを選択します。

    3. [ポリシーの確認] ページで、[名前] に「S3ResourceCreationAndArtifactAccessPolicy」と入力します。

    4. [Create policy] を選択します。

  3. ナビゲーションペインで [Roles] を選択し、続いて [Create role] を選択します。

  4. [信頼できるエンティティを選択] で [カスタム信頼ポリシー] を選択し、次の JSON ポリシーを入力します。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "GivePermissionsToServiceCatalog", "Effect": "Allow", "Principal": { "Service": "servicecatalog.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account_id:root" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:PrincipalArn": [ "arn:aws:iam::accounti_id:role/TerraformEngine/TerraformExecutionRole*", "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogExternalParameterParserRole*", "arn:aws:iam::accounti_id:role/TerraformEngine/ServiceCatalogTerraformOSParameterParserRole*" ] } } } ] }
  5. [次へ] を選択します。

  6. ポリシー」リストで、作成したばかりの S3ResourceCreationAndArtifactAccessPolicy を選択します。

  7. [次へ] を選択します。

  8. [ロール名] には、「SCLaunch-S3product」と入力します。

    重要

    起動ロール名は「SCLaunch」で始まり、その後に目的のロール名が続く必要があります。

  9. ロールの作成 を選択します。

    重要

    AWS Service Catalog 管理者アカウントで起動ロールを作成したら、AWS Service Catalog エンドユーザーアカウントでも同じ起動ロールを作成する必要があります。エンドユーザーアカウントのロールは、管理者アカウントのロールと同じ名前で、同じポリシーが含まれている必要があります。

AWS Service Catalog エンドユーザーアカウントに起動ロールを作成するには
  1. エンドユーザーアカウントに管理者としてログインし、IAM ユーザーガイドの JSON タブにある新しいポリシーの作成の指示に従います。

  2. 上記の「AWS Service Catalog 管理者アカウントで起動ロールを作成するには」の手順 2 ~ 10 を繰り返します。

注記

AWS Service Catalog エンドユーザーアカウントで起動ロールを作成するときは、カスタム信頼ポリシーでも同じ管理者 AccountId を使用するようにしてください。

管理者アカウントとエンドユーザーアカウントの両方で起動ロールを作成したので、製品に起動制約を追加できます。