Serviceberechtigungsnachweise erstellen

Sie können IBM Cloud® Secrets Manager verwenden, um Dienstanmeldeinformationen zu erstellen, die Sie für den Zugriff auf eine IBM Cloud Ressource verwenden können, die eine Authentifizierung erfordert.

Serviceberechtigungsnachweise können von Identity and Access Management ausgegebene Berechtigungsnachweise enthalten. Bei den Anmeldeinformationen kann es sich auch um dienstspezifische native Anmeldeinformationen wie HMAC-Schlüssel, eine Datenbank-Benutzer-ID und ein Passwort, SASL-Anmeldeinformationen oder TLS-Zertifikate handeln. Weitere Informationen zu den Arten von Secrets, die Sie mit „ Secrets Manager “ verwalten können, finden Sie unter „ Was ist ein Secret? “.

Unterstützte IBM Cloud-Services

Sie können Serviceberechtigungsnachweise über Secrets Manager für die folgenden IBM Cloud-Services erstellen:

Vorbereitende Schritte

Bevor Sie beginnen, müssen Sie prüfen, ob Sie über die erforderliche Zugriffsebene verfügen. Zum Erstellen oder Hinzufügen von geheimen Schlüsseln benötigen Sie die Servicerolle Schreibberechtigter oder eine Rolle mit größerem Berechtigungsumfang.

Ein Kontoadministrator oder eine beliebige Person mit der erforderlichen Zugriffsebene kann Dienstanmeldeinformationen, die von Secrets Manager erstellt und verwaltet werden, von außen ändern. Wird ein solcher Berechtigungsnachweis außerhalb von Secrets Manager gelöscht, kann der Dienst ein unerwartetes Verhalten zeigen. Sie können beispielsweise Berechtigungsnachweise nicht erstellen oder wechseln.

Beachten Sie, dass bei Serviceberechtigungsnachweisen, die für Datenbanken erstellt wurden, diese nicht synchronisiert werden, sobald der Serviceberechtigungsnachweis turnusmäßig gewechselt wurde, wenn Sie neben dem Berechtigungsnachweis auch die Datenbankberechtigungen für den erstellten Berechtigungsnachweis ändern. Beim Rotieren eines Datenbankserviceberechtigungsnachweises wird dies als Identitätsrotation betrachtet.

Wenn die Lebensdauer eines geheimen Schlüssels für Serviceberechtigungsnachweise geändert wird, wird sie nur bei der nächsten Rotation geheimer Versionen angewendet.

Das Geheimnis der Dienstanmeldung, das von Secrets Manager erstellt wird, ist auch der Name des Ressourcenschlüssels. Zum Beispiel hat ein Service Credential Secret für Cloud Object Storage mit dem Namen my-secret-name einen passenden Ressourcenschlüssel in Cloud Object Storage mit dem Namen my-secret-name. Wenn Sie das Geheimnis später in Secrets Manager umbenennen, wird diese Änderung nicht in den Ressourcenschlüssel übernommen, aber die Funktionalität wird nicht unterbrochen.

IAM-Servicezugriffsrolle für Serviceberechtigungsnachweise zuweisen

Um eine Dienstberechtigung zu erstellen, muss eine IAM-Dienstzugangsrolle ausgewählt werden. Die verfügbaren Rollen, aus denen Sie auswählen können, können zwischen den unterstützten Services variieren. Zugehörige Dokumentation finden Sie in der Liste der unterstützten Services. Die ausgewählte Rolle wird dann einer IAM Service ID zugeordnet, die entweder eine vorhandene oder eine automatisch generierte Service-ID sein kann.

Die Service-ID wird nach der Rotation geheimer Schlüssel weiterhin verwendet. Wenn Sie einen geheimen Schlüssel löschen, wird eine bereits vorhandene Service-ID nicht gelöscht. Eine automatisch generierte Service-ID wird jedoch gelöscht.

Wenn Sie eine bereits vorhandene Service-ID verwenden möchten, können Sie auch die zugehörigen Servicezugriffsrichtlinien vorkonfigurieren. Wählen Sie in diesem Fall beim Erstellen des geheimen Schlüssels Keine als Rolle aus. Weitere Informationen zu IAM-Richtlinien.

Bewährte Verfahren für Serviceberechtigungsnachweise

Es wird empfohlen, das Prinzip des Zugriffs mit den geringsten Zugriffsrechten für Produktionsanwendungsfälle anzuwenden:

  1. Wenn die Service-zu-Service-Autorisierung festgelegt wird, sollte sie zwischen konkreten Quellen-und Zielserviceinstanzen definiert werden, nicht zwischen allen Services.
  2. Wenn der Zugriff für Service-IDs, die mit einem Serviceberechtigungsnachweis verwendet werden sollen, manuell festgelegt wird, sollte er auf eine konkrete Serviceinstanz angewendet werden.

Erstellen von Dienstzugangsdaten in der Benutzeroberfläche

Führen Sie die folgenden Schritte aus, um über die Benutzeroberfläche von „ Secrets Manager “ Dienstanmeldedaten zu erstellen.

  1. Klicken Sie in der Konsole auf das Symbol Menü Menüsymbol > Ressourcenliste.

  2. Wählen Sie in der Liste der Services Ihre Instanz von Secrets Manager aus.

  3. Klicken Sie in der Tabelle Geheime Schlüssel auf Hinzufügen.

  4. Klicken Sie in der Liste der Geheimnistypen auf die Kachel „ Dienstanmeldeinformationen “.

  5. Klicken Sie auf Weiter.

  6. Fügen Sie einen Namen und eine Beschreibung hinzu, um Ihren geheimen Schlüssel leicht identifizieren zu können.

  7. Wählen Sie die GeheimnisgruppeDie Umgebung und die Bedingungen, denen die enthaltenen geheimen Schlüssel in einer Instanz entsprechen müssen. Ein Benutzer kann einer Gruppe geheimer Schlüssel zugeordnet werden, um den Zugriff und die Zusammenarbeit zu ermöglichen. aus, der Sie das Geheimnis zuweisen möchten.

    Haben Sie noch keine Gruppe geheimer Schlüssel? Im Feld Gruppe geheimer Schlüssel können Sie auf Erstellen klicken, um einen Namen und eine Beschreibung für eine neue Gruppe anzugeben. Ihr geheimer Schlüssel wird automatisch zur neuen Gruppe hinzugefügt. Weitere Informationen zu Gruppen geheimer Schlüssel finden Sie im Abschnitt zum Organisieren Ihrer geheimen Schlüssel.

  8. Optional: Fügen Sie Bezeichnungen hinzu, die Ihnen helfen, nach ähnlichen geheimen Schlüsseln in Ihrer Instanz zu suchen.

  9. Wählen Sie den Dienst und die Dienstinstanz aus, für die Sie einen Berechtigungsnachweis erstellen möchten

    Wenn die Serviceinstanz zum ersten mal ausgewählt oder ein Service-CRN bereitgestellt wird, berechtigen Sie zunächst Secrets Manager für den Zugriff darauf

    1. Klicken Sie auf Autorisieren und wählen Sie Key Manager
  10. Klicken Sie auf Weiter.

  11. Geben Sie die angeforderte Eingabe abhängig vom ausgewählten Service an.

  12. Optional: Fügen Sie Ihrem geheimen Schlüssel oder einer bestimmten Version Ihres geheimen Schlüssels Metadaten hinzu.

    1. Laden Sie eine Datei hoch oder geben Sie die Metadaten und die Versionsmetadaten im JSON-Format ein.
  13. Optional: Legen Sie eine Gültigkeitsdauer oder eine Time-to-Live (TTL) für den geheimen Schlüssel fest.

    Indem Sie eine Leasingdauer für Ihre Service-Anmeldeinformationen festlegen, bestimmen Sie, wie lange die zugehörigen Anmeldeinformationen gültig bleiben. Sobald die Gültigkeitsdauer der Service-Anmeldeinformationen abgelaufen ist, wird sie automatisch widerrufen.

  14. Optional: Aktivieren Sie die automatische Rotation Ihres geheimen Schlüssels.

  15. Klicken Sie auf Weiter.

  16. Überprüfen Sie die Details Ihres geheimen Schlüssels.

  17. Klicken Sie auf Hinzufügen.

Erstellen von Dienstanmeldedaten über die Befehlszeilenschnittstelle

Um mithilfe des CLI-Plug-ins „ Secrets Manager “ ein Service-Anmelde-Secret zu erstellen, führen Sie den ibmcloud secrets-manager secret-create Befehl aus. Sie können den Typ des geheimen Schlüssels mit der Option --secret-type service_credentials angeben. Der folgende Befehl erstellt beispielsweise einen Serviceberechtigungsnachweis für eine Cloud Object Storage-Instanz mit HMAC-Unterstützung. Sowie die Angabe der IAM-Rolle, die für dieses Credential vorgesehen ist, z.B. Writer.

ibmcloud secrets-manager secret-create --secret-type="service_credentials" --secret-name="example-service-credentials-secret" --secret-source-service='{"instance": {"crn": "CRN of the instance to create a credential for"},"parameters": {"HMAC": true},"role": {"crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer"}}'

Der Befehl gibt den ID-Wert des geheimen Schlüssels zusammen mit anderen Metadaten aus. Weitere Informationen zu den Befehlsoptionen finden Sie in ibmcloud secrets-manager secret-create.

Erstellen von Dienstzugangsdaten über die API

Sie können Dienstanmeldedaten programmgesteuert erstellen, indem Sie die „ Secrets Manager “-API aufrufen.

Sie können Metadaten, die für die Anforderungen Ihrer Organisation relevant sind, mit den Anforderungsparametern custom_metadata und version_custom_metadata speichern. Werte von version_custom_metadata werden nur für die Versionen eines geheimen Schlüssels zurückgegeben. Die angepassten Metadaten Ihres geheimen Schlüssels werden wie alle anderen Metadaten für bis zu 50 Versionen gespeichert und Sie dürfen keine vertraulichen Daten einschließen.

Im folgenden Beispiel wird eine Dienstberechtigung für Cloud Object Storage erstellt, mit benutzerdefinierten Parametern mit der IAM-ID einer vorhandenen Dienst-ID und der Aktivierung von HMAC. Sowie die Angabe der IAM-Rolle, die für dieses Credential vorgesehen ist, z.B. Writer.

curl -X POST
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      {
        "name": "example-service-credentials-secret",
        "description": "Description of my Service Credentials secret",
        "secret_type": "service_credentials",
        "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
        "labels": [
          "dev",
          "us-south"
        ],
        "source_service": {
          "instance": {
            "crn": "CRN of the instance to create a credential for"
          },
          "parameters": {
            "serviceid_crn": "Existing Service ID's IAM ID",
            "HMAC": true
          },
          "role": {
            "crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
          }
        }
      }' \ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

Eine erfolgreiche Antwort gibt den ID-Wert für den geheimen Schlüssel zusammen mit anderen Metadaten zurück. Weitere Informationen zu den erforderlichen und optionalen Anforderungsparametern finden Sie unter API-Referenz.

Erstellen von Service-Anmeldeinformationen mit Terraform

Sie können Service-Zugangsdaten programmgesteuert erstellen, indem Sie Terraform für Secrets Manager verwenden. Das folgende Beispiel zeigt eine Konfiguration, die Sie zum Erstellen von Service-Anmeldeinformationen für Cloud Object Storage verwenden können.

    resource "ibm_sm_service_credentials_secret" "my_service_credentials_secret" {
      instance_id = "local.instance_id"
      region = "local.region"
      name = "example-service-credentials-secret"
      secret_group_id = "ibm_sm_secret_group.sm_secret_group_test.secret_group_id"
      description = "Description of my Service Credentials secret"
      ttl = "24h"
      source_service {
        role = {
          crn = "crn:v1:bluemix:public:iam::::serviceRole:Writer"
        },
        instance = {
          crn = "crn:v1:bluemix:public:cloud-object-storage:global:a/347df6de25020f0fa8b711c6d9881111:f35e85fc-3d4d-476e-8547-51222e3c1111::"
        },
        parameters = {
          HMAC: true
        }
      }
      rotation {
        auto_rotate = true
        interval = 1
        unit = "day"
      }
    }

Bereitstellen von Dienstanmeldeinformationen mit automatischer Rotation mit Terraform IBM Modules (TIM) für Secrets Manager Secret. Beispiele finden Sie unter Terraform IBM Module.