既知の問題と制約事項

既知の問題や制限には、 IBM Cloud® カタログの一部の製品へのアクセスを制限できないことや、 IBM Cloud Identity and Access Management (IAM) リソースを作成する際の最大制限などがあります。

アカウントデフォルト制限を確認するには、 IBM Cloud IAM制限を 参照してください。

Podman デスクトップ認証トークンが更新されない

Podman Desktopの古いバージョンでは、有効期限が切れた認証トークンが自動的に更新されないという既知の問題があります。 期限切れのトークンは、IAM での認証に何度も失敗する。 Podman Desktopをインストールした場合は、 バージョン 1.19.1 以降にアップデートしてください。

Podman はサードパーティの製品であり、 IBM によって提供またはサポートされるものではありません。 IBM は、 Podman と IBM Cloud との使用に関して責任を負うものではなく、特定の性能を保証するものでもありません。

GoogleログインはフェデレーションIDをサポートしていません

GoogleフェデレーションIDを持つユーザーは、企業の外部IDプロバイダーによって追加のアクセスが必要になる可能性があるため、IDログインを利用できません(IdP)。

カタログ管理設定が一部の IBM 製品に適用されない

一部の製品は、以下のカタログ可視性設定の影響を受けません。

  • IBM Cloud カタログの表示をオフにする
  • IBM Cloud の全商品をカタログから除外する
  • プライベート・カタログから IBM Cloud の全商品を除外する

カタログの可視性設定は、 IBM Cloud コンソールの「 管理」 > 「カタログ」 > 「設定 」で表示および管理できます。

アカウントまたはプライベート・カタログの カタログの可視性の設定 に関係なく、ユーザーは引き続き API または CLI を使用して以下の製品のインスタンスを作成できます。

  • Block Storage for VPC
  • Citrix Netscaler VPX
  • Fortigate Security Appliance
  • Hardware Firewall
  • ハードウェア・ファイアウォール 専用
  • IBM Cloud Backup for Classic
  • IBM Cloud Bare Metal Servers
  • IBM Cloud Block Storage for Classic
  • IBM Cloud Container Registry
  • IBM Cloud Content Delivery Network
  • IBM Cloud Direct Link
  • IBM Cloud Direct Link on Classic
  • IBM Cloud Functions
  • IBM Cloud Gateway Appliance
  • IBM Cloud ハードウェア・セキュリティー・モジュール
  • IBM Cloud Kubernetes Service
  • IBM Cloud Object Storage
  • IBM Cloud Schematics
  • IBM Cloud ロード・バランサー
  • IBM Cloud Virtual Servers
  • サブネットおよび IP
  • Virtual Private Cloud
  • Virtual Server for VPC
  • VLAN
  • VPN
  • VPN for VPC

属性に基づくポリシーの制限

アクセス管理タグは、IAM 対応のすべてのサービスを対象範囲とするアクセスポリシーを作成した場合にのみ利用可能です。 この場合、タグに基づいてアクセス権限を有効にする場合は、その他の属性は追加できません。 また、特定のロケーションやリソース・グループに基づくポリシーを使用する場合は、そのアクセス・ポリシーにタグは追加できません。

IAMロールの制限

名前が異なる2つのロールを作成することはできませんが、アクションのセットはまったく同じです。 IAMは、たとえ名前が一意であっても、同じパーミッションを持つロールを重複として扱う。

アクセス・ポリシー・バージョンの制限

2023 年 1 月 25 日現在、IAM は 2 つのバージョンの IAM ポリシー管理 API をサポートしています。 /v2/policies/v1/policiesv1/polices では、ポリシーのサブジェクトとリソースの属性に対してストリング比較を行うことができます。 v2/polices では、後方互換性を提供すると同時に、より複雑な比較、演算子、および時間ベースの条件を可能にする新しいスキーマが導入されました。

ストリングの比較

次の表は、 /v2/policies 構文を使用してアクセスポリシーを構築する際に使用できる文字列比較演算子をまとめたものです。 各バージョンの詳細については 、「 /v1/policies/v2/policies の構文の比較」 を参照してください。 演算子の使用例については、 リソース属性に基づく条件 を参照してください。

最大 10 個の条件を持つことができ、最大 2 レベルまでネストすることができます。

アクセスポリシーの条件で使用できる文字列比較演算子。
オペレーター 説明
stringEquals 大/小文字を区別するストリング比較。 ブール値または数値は、比較の前にストリングに変換されます。
stringMatch パターンと対象文字列の間で、大文字と小文字を区別した文字列の一致が、アスタリスク( * )、クエスチョンマーク( ? )、両方、またはなし(リテラル値と同じ)を使用して実行されます。 アスタリスク (*) はストリング中のゼロ個以上の文字からなる任意の文字列を表し、疑問符 (?) は任意の単一文字を表します。 アスタリスク * およびクエスチョンマーク ? は、それぞれを2組の波括弧 {{}} で囲むことで、リテラル値として表現することもできます。
stringExists ブール値 true は、文字列が存在しなければならず、空でもよいことを示します。 false は、文字列が存在してはならないことを示します。
stringEqualsAnyOf 大文字と小文字を区別して、文字列の配列のいずれかの文字列と完全に一致する。 値は10個まで。
stringMatchAnyOf 大文字と小文字を区別して、文字列の配列のいずれかの文字列と一致する。 文字列値には、アスタリスク( * )、クエスチョンマーク( ? )、両方、またはどちらも含まない(リテラル値と同じ)のいずれかを指定できます。 アスタリスク (*) はストリング中のゼロ個以上の文字からなる任意の文字列を表し、疑問符 (?) は任意の単一文字を表します。 アスタリスク * およびクエスチョンマーク ? は、それぞれを2組の波括弧 {{}} で囲むことで、リテラル値として表現することもできます。 値は10個まで。

例えば、以下のステートメントには、 stringEquals を使用する operator エレメントが含まれています。このエレメントは、アカウント ID とサービス名が value エレメントと正確に一致する必要があることを指定します。 このステートメントには、 stringMatch を使用して Event Streams トピックの命名パターンを指定する operator エレメントも含まれています。これらのトピックは、これらの特定のリソースへのアクセスを編成するために使用できます。 これにより、 messagehub-topic-dev で始まるアカウント内のすべてのトピックに 1 つのポリシーを割り当てることができます。

"resource": {
     "attributes": [
        {
             "operator": "stringEquals",
             "value": "0aeab68aabd14d89bd72e4330150710a0",
             "key": "accountId"
        },
        {
             "value": "messagehub",
             "operator": "stringEquals",
             "key": "serviceName"
        },
        {
             "value": "messagehub-topic-dev*",
             "operator": "stringMatch",
             "key": "resource"
        }
    ]
}

許可ポリシー は、現在 /v1/policies でのみサポートされています。

コンソールでのポリシー・バージョンの確認

IAM アクセス・ポリシーの時間ベースおよびリソース属性ベースの条件では、 /v2/policies 構文を使用します。 /v1/policies 構文を使用するポリシーは、時間ベースおよびリソース属性ベースの条件を追加するのに適格ではありません。 API を使用して /v1/policies/v2/policies に更新するには、 API を使用した条件による /v1/policies/v2/policies への更新 を参照してください。 コンソールでこれらの条件を既存のポリシーに追加できるかどうかを確認するには、以下の手順を実行します。

  1. [管理] > [アクセス (IAM) ] に移動します。
  2. 検査するポリシーに応じて、 「ユーザー」「トラステッド・プロファイル」「サービス ID」、または 「アクセス・グループ」 を選択します。
  3. 特定のユーザー、トラステッド・プロファイル、サービス ID、またはアクセス・グループを選択します。
  4. 「アクセス」 > 「アクセス・ポリシー」 に移動します。
  5. ポリシーをクリックします。 /v1/policies は、以下の通知によって示されます。

Conditions unavailable for v1 policies

  1. (オプション) /v1/policies 構文を使用するポリシーに条件を追加するには、元のポリシーを削除して、新しいポリシーを作成します。 コンソールでは、新しいポリシーは /v2/policies 構文を使用します。

API を使用した条件による /v1/policies から /v2/policies への更新

/v1/policies 構文を使用するポリシーは、時間ベースおよびリソース属性ベースの条件を追加するのに適格ではありません。 バージョンを更新するには、 V1 ID と組み込みたい任意の条件を指定した PUT /v2/policies/{id} を使用できます。 詳しくは、/v2/policiesを参照してください。

/v1/policies 構文と /v2/policies 構文の比較

各例のポリシーは、編集者役割を持つ請求サービスへのアクセス権限をユーザーに付与します。 /v2/policies の例には、 "conditions" パラメーターによって示される一時的な時間ベースの条件が含まれています。

ポリシーを編集、作成、および削除する場合は、対応する API バージョンを使用します。

/v1/policies

{
     "type": "access",
     "roles": [
        {
            "role_id": "crn:v1:bluemix:public:iam::::role:Editor"
        }
    ],
     "resources": [
        {
             "attributes": [
                {
                    "name": "accountId",
                    "value": "000c49bc2724a07000010b1da94c4d0"
                },
                {
                    "name": "serviceName",
                    "value": "billing"
                }
            ]
        }
    ],
     "subjects": [
        {
             "attributes": [
                {
                    "name": "iam_id",
                    "value": "IBMid-00000AV0S0"
                }
            ]
        }
    ]
}

/v1/policies を使用してポリシーをリストすると、API は、 /v1/ と、アカウント内の各 /v2/ ポリシーのプレースホルダー・ポリシーを返します。 詳細については、以下を参照してください。 /v1/policies アカウントの /v2/ ポリシー用のプレースホルダーを返します

/v2/policies

{
     "type": "access",
     "control": {
         "grant": {
             "roles": [
                {
                    "role_id": "crn:v1:bluemix:public:iam::::role:Editor"
                }
            ]
        }
    },
     "resource": {
         "attributes": [
            {
                "operator": "stringEquals",
                "value": "000c49bc2724a07000010b1da94c4d0",
                "key": "accountId"
            },
            {
                "value": "billing",
                "operator": "stringEquals",
                "key": "serviceName"
            }
        ]
    },
     "rule": {
         "operator": "and",
         "conditions": [
            {
                "key": "{{environment.attributes.current_date_time}}",
                "operator": "dateTimeGreaterThanOrEquals",
                "value": "2023-01-01T09:00:00+00:00"
            },
            {
                "key": "{{environment.attributes.current_date_time}}",
                "operator": "dateTimeLessThanOrEquals",
                "value": "2023-01-06T17:59:59+00:00"
            }
        ]
    },
     "pattern": "time-based-conditions:once",
     "subject": {
         "attributes": [
            {
                "key": "iam_id",
                "operator": "stringEquals",
                "value": "IBMid-00000AV0S0"
            }
        ]
    }
}

/v1/policies は、 /v2/ ポリシーのプレースホルダーを返します。

/v1/policies を使用してポリシーをリストすると、API は、 /v1/ と、アカウント内の各 /v2/ ポリシーのプレースホルダー・ポリシーを返します。 プレースホルダーは、 /v1/ スキーマに従う一方で、アカウント内に追加のポリシーが存在することを示します。 /v2/ ポリシーの全内容を表示するには、 /v2/policies を使用してポリシーをリストするか、 GET: v2/policies/<ID> を使用して個々のポリシーを取得します。 例えば、以下のプレースホルダー・ポリシーを参照してください。

{
     "id": "33b901fa-8ec5-4432-a2e6-24b6a212c20a",
     "type": "access",
     "description": "**This is a unsupported policy version placeholder, to view the full content, please call GET with provided href**",
     "subjects": [{
         "attributes": [{
             "name": "iam_id",
             "value": "unsupported version"
        }]
    }],
     "roles": [{
         "role_id": "crn:v1:bluemix:public:iam::::role:UnsupportedVersion",
         "display_name": "Unsupported Version",
         "description": "**This is a unsupported policy version placeholder, to view the full content, please call GET with provided href**"
    }],
     "resources": [{
         "attributes": [{
             "name": "accountId",
             "value": "000c49bc2724a07000010b1da94c4d0"
        }]
    }],
    "href": "https://iam.cloud.ibm.com/v2/policies/88b901fa-6ec5-888-a2e6-24b6a212c20a"
}

外部IDのやり取りを制限することで影響を受けるサービス

外部 ID とのやり取りを制限するには、アカウント内のリソースに対する IAM アクセス・ポリシーを持つユーザが、自分のアカウントまたは許可リストのアカウントで認証された場合にのみ、それらのリソースにアクセスする必要があります。 外部ID相互作用の設定が制限モードに設定されている場合、以下のサービスまたはその機能の一部が期待どおりに機能しないことがあります:

  • IBM Cloud Satellite
  • IBM Cloud Object Storage- パブリックアクセスのバケツにはアクセスできない
  • IBM Cloud Code Engine
  • IBM Cloud® DevOps Insights
  • アクセスレポート( CSV または JSON リソースアクセスレポートの生成)

この設定の詳細については、「 外部 ID インタラクションの管理 」を参照してください。