すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:RAMユーザーがECSを使用できるようにするカスタムポリシーの設定

最終更新日:Aug 29, 2024

Resource Management Service (RAM) システムポリシーがビジネス要件を満たしていない場合は、最小権限の原則に基づいてカスタムポリシーを構成できます。 カスタムポリシーを使用して、権限をきめ細かく管理し、リソースアクセスのセキュリティを強化できます。 このトピックでは、Elastic Compute Service (ECS) のカスタムポリシーを設定する方法について説明し、サンプルのカスタムポリシーを提供します。

カスタムポリシーとは何ですか?

RAM (Resource Access Management) ポリシーは、システムポリシーとカスタムポリシーに分類されます。 ビジネス要件に基づいてカスタムポリシーを管理できます。

  • カスタムポリシーを作成した後、RAMユーザー、RAMユーザーグループ、またはRAMロールにポリシーをアタッチする必要があります。 これにより、ポリシーで指定された権限をプリンシパルに付与できます。

  • プリンシパルにアタッチされていないRAMポリシーを削除できます。 RAMポリシーがプリンシパルにアタッチされている場合は、RAMポリシーを削除する前に、RAMポリシーをプリンシパルからデタッチする必要があります。

  • カスタムポリシーはバージョン管理をサポートします。 RAMが提供するバージョン管理メカニズムに基づいて、カスタムポリシーバージョンを管理できます。

関連ドキュメント

権限付与情報

カスタムポリシーを使用するには、ビジネスのアクセス制御要件とECSの許可情報を理解する必要があります。 詳細については、「 RAM での権限付与」をご参照ください。

サンプルカスタムポリシー

RAMユーザーに従量課金ECSインスタンスを作成する権限を付与するカスタムポリシー

{
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
                   "ecs:DescribeImages",
                 "vpc:DescribeVpcs",
                 "vpc:DescribeVSwitches",
                 "ecs:DescribeSecurityGroups",
                 "ecs:DescribeKeyPairs",
                 "ecs:DescribeTags",
                 "ecs:RunInstances"
         ],
           "Resource": "*"
       }
   ],
   "Version": "1"
}

RAMユーザーにサブスクリプションECSインスタンスを作成する権限を付与するカスタムポリシー

bss関連のAPI操作を呼び出して、サブスクリプション注文の照会と支払いを行うことができます。 対応するシステムポリシーはAliyunBSSOrderAccessです。

重要

RunInstances操作を呼び出してサブスクリプションECSインスタンスを作成するときにautoPayをtrueに設定した場合、bss関連のAPI操作を呼び出す権限は必要ありません。

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                    "ecs:DescribeImages", 
                  "vpc:DescribeVpcs", 
                  "vpc:DescribeVSwitches", 
                  "ecs:DescribeSecurityGroups", 
                  "ecs:DescribeKeyPairs",
                  "ecs:DescribeTags", 
                  "ecs:RunInstances",
                  "bss:DescribeOrderList",
                  "bss:DescribeOrderDetail",
                  "bss:PayOrder",
                  "bss:CancelOrder"
          ],
            "Resource": "*"
        }
    ],
    "Version": "1"
}

RAMユーザーにECSインスタンスを再起動する権限を付与するカスタムポリシー

次のポリシーは、許可されたRAMユーザーがECSインスタンスを再起動できることを示します。 ECSインスタンスは、RAMユーザーに対してMFAが有効になっており、RAMユーザーがMFAを使用してログインしている場合にのみ再起動できます。 この場合、condition要素のacs:MFAPresent条件キーはtrueに設定されます。

{
  "Statement": [
    {
      "Action": "ecs:RebootInstance",
      "Effect": "Allow",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "acs:MFAPresent": "true"
        }
      }
    }
  ],
  "Version": "1"
}

RAMユーザーに特定のECSインスタンスを管理する権限を付与するカスタムポリシー

次のポリシーは、許可されたRAMユーザーがAlibaba CloudアカウントのすべてのECSインスタンスを表示できますが、管理できるのはi-001のECSインスタンスのみです。

{
  "Statement": [
    {
      "Action": "ecs:*",
      "Effect": "Allow",
      "Resource": "acs:ecs:*:*:instance/i-001"
    },
    {
      "Action": "ecs:Describe*",
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

RAMユーザーに特定のリージョンのECSインスタンスを表示する権限を付与するカスタムポリシー

次のポリシーは、許可された RAM ユーザーが中国 (青島) リージョンの ECS インスタンスは表示できるものの、このリージョンのディスクまたはスナップショットは表示できないことを示します。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:Describe*",
      "Resource": "acs:ecs:cn-qingdao:*:instance/*"
    }
  ],
  "Version": "1"
}

RAMユーザーにAlibaba Cloudアカウントのセキュリティグループを管理する権限を付与するカスタムポリシー

次のポリシーは、許可されたRAMユーザーがAlibaba Cloudアカウント内のECSセキュリティグループを管理できることを指定しています。

{
  "Version": "1",
  "Statement": [
    {
      "Action": "ecs:*SecurityGroup*",
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

RAMユーザーにインスタンスRAMロールを作成する権限を付与するカスタムポリシー

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs: CreateInstance",
                "ecs: AttachInstanceRamRole",
                "ecs: DetachInstanceRAMRole"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "*"
        }
    ]
}

RAMユーザーに既存のECSインスタンスとブロックストレージデバイスに関する情報を照会する権限を付与するカスタムポリシー

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                    "ecs:DescribeInstances", 
                    "ecs:DescribeDisks"
          ],
            "Resource": "*"
        }
    ],
    "Version": "1"
}

RAMユーザーに購入節約プランの権限を付与するカスタムポリシー

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "savingsplans:*",
      "Resource": "*"
    }
  ]
}

RAMユーザーがECSインスタンスを作成するときに、RAMユーザーにデフォルトの仮想プライベートクラウド (VPC) を作成する権限を拒否するカスタムポリシー

ECSでは、RAMユーザーを使用して、異なるビジネス間の操作を分離できます。 デフォルトでは、AliyunECSFullAccess権限が付与されたRAMユーザーは、ECSインスタンスの作成、表示、再起動など、ECSリソースに対する操作を実行できます。 RAMユーザーがECSインスタンスを作成するときにVPCを使用できないリージョンでデフォルトVPCを作成する権限をRAMユーザーに拒否したいが、RAMユーザーの他の権限を保持したい場合は、カスタムポリシーを設定できます。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "vpc:CreateDefaultVpc": [
                        "true"
                    ]
                }
            }
        }
    ]
}

RAMユーザーにプレフィックスリストを使用する権限を付与するカスタムポリシー

{
    "Statement": [
        {
            "Action": [
                "ecs:CreatePrefixList",
                "ecs:ModifyPrefixList",
                "ecs:DescribePrefixLists",
                "ecs:DescribePrefixListAssociations",
                "ecs:DescribePrefixListAttributes",
                "ecs:DeletePrefixList"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ],
    "Version": "1"
}

RAMユーザーにCloud Assistantを使用する権限を付与するカスタムポリシー

詳細については、「RAMユーザーにCloud Assistantを使用する権限を付与する」トピックのCloud Assistant固有のサンプルカスタムポリシーセクションをご参照ください。

RAMユーザーにOSSバケットを読み取る権限を付与するカスタムポリシー

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:GetObject",
                "oss:GetBucketLocation",
                "oss:GetBucketInfo"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

RAMユーザーにOSSバケットの読み取りおよび書き込み権限を付与するカスタムポリシー

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:GetObject",
                "oss:GetBucketLocation",
                "oss:GetBucketInfo",
                "oss:PutObject",
                "oss:DeleteObject",
                "oss:AbortMultipartUpload",
                "oss:ListMultipartUploads",
                "oss:ListParts"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

RAMユーザーにHTTPS経由でのみECSリソースにアクセスする権限を付与するカスタムポリシー

{
  "Statement": [
    {
      "Action": "ecs:*",
      "Effect": "Allow",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "acs:SecureTransport": "true"
        }
      }
    }
  ],
  "Version": "1"
}

暗号化されたディスクのみを作成する権限をRAMユーザーに付与するカスタムポリシー

セキュリティコンプライアンスの要件が高い特定の企業の場合、企業のAlibaba Cloudアカウントに属するすべてのRAMユーザーは、データの機密性を確保するためにデータの暗号化が必要です。 RAMユーザーにカスタムポリシーを適用して、RAMユーザーがECSで暗号化されたディスクのみを作成できるようにすることができます。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "ecs:RunInstances",
        "ecs:CreateInstance"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "ecs:IsDiskEncrypted": "*false*"
        }
      },
      "Effect": "Deny"
    },
    {
      "Action": [
        "ecs:RunInstances",
        "ecs:CreateInstance"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ecs:IsSystemDiskEncrypted": "false"
        }
      },
      "Effect": "Deny"
    },
    {
      "Action": "ecs:CreateDisk",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "ecs:IsDiskEncrypted": "*false*"
        }
      },
      "Effect": "Deny"
    }
  ]
}

カスタムイメージのみを使用してECSインスタンスを作成する権限をRAMユーザーに付与するカスタムポリシー

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:RunInstances",
                "ecs:CreateInstance"
            ],
            "Effect": "Deny",
            "Resource": "acs:ecs:<Region ID>:*:instance/*",
            "Condition": {
                "StringNotEquals": {
                    "ecs:ImageSource": "Custom"
                }
            }
        }
    ]
}